dataframe - Pyspark 数据帧比较

标签 dataframe apache-spark pyspark compare

我有 2 个具有相同列数的 Spark 数据框。

DF1:

ID    KEY
1     A
1     A
2     B
3     C
3     C

DF2:

ID    KEY
1     A
1     A
1     A
2     B
3     C
3     C
4     D
5     E
5     E   

我想比较这两个数据帧并写入 DF2 中但 DF1 中不存在的记录。

预期输出:

ID    KEY
1     A
4     D
5     E
5     E 

最佳答案

使用.exceptAll函数。

`示例:

df1.show()
#+---+---+
#| ID|KEY|
#+---+---+
#|  1|  A|
#|  1|  A|
#|  2|  B|
#|  3|  c|
#|  3|  c|
#+---+---+

df2.show()
#+---+---+
#| ID|KEY|
#+---+---+
#|  1|  A|
#|  1|  A|
#|  1|  A|
#|  2|  B|
#|  3|  c|
#|  3|  c|
#|  4|  D|
#|  5|  E|
#|  5|  E|
#+---+---+

df2.exceptAll(df1).orderBy("ID").show()
#+---+---+
#| ID|KEY|
#+---+---+
#|  1|  A|
#|  4|  D|
#|  5|  E|
#|  5|  E|
#+---+---+

关于dataframe - Pyspark 数据帧比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61814535/

相关文章:

Python 从特定时间开始 date_range

r - Data.frame 过滤/子集后变成因子/向量

python - 如何为 DataFrame 的每一行分配一个组名?

unit-testing - 测试 Spark : how to create a clean environment for each test

Python Spark 如何使用 RDD API 按组查找累计和

python - 填充数据框中缺失的行

apache-spark - Apache Spark 2.0 (PySpark) - DataFrame 错误为 csv 找到多个来源

python - Lambda 函数导致 TypeError : 'int' object is not iterable

apache-spark - Pyspark udf 对于不带参数的函数失败,但对于不带参数的 lambda 有效

python-3.x - 装满 Spark 数据帧-pyspark