web-dev-qa-db-fra.com

Spark: soustraire deux DataFrames

Dans Spark version 1.2. on pourrait utiliser subtract avec 2 SchemRDDs pour ne disposer que du contenu différent du premier une

val onlyNewData = todaySchemaRDD.subtract(yesterdaySchemaRDD)

onlyNewData contient les lignes de todaySchemRDD qui n'existent pas dans yesterdaySchemaRDD.

Comment cela peut-il être réalisé avec DataFrames in Spark version 1.3.?

40
Interfector

Selon le api docs , faites:

dataFrame1.except(dataFrame2)

retournera un nouveau DataFrame contenant des lignes dans dataFrame1 mais pas dans dataframe2.

63
Eric Eijkelenboom

Dans pyspark DOCS il serait soustrait

df1.subtract(df2)
31
Teja

J'ai essayé de soustraire, mais le résultat n'était pas cohérent. Si j'exécute df1.subtract(df2), toutes les lignes de df1 ne sont pas affichées dans le cadre de données résultant, probablement à cause de distinct cité dans la documentation.

Cela a résolu mon problème: df1.exceptAll(df2)

3
Arthur Julião