使用Spark减去数据帧

时间:2019-08-13 06:11:27

标签: pyspark pyspark-sql

我的第一个数据帧(df1)看起来像-

id      city_code       area_code
1          20             30
2          33             88
3          43             09
4          02             72
5          12             19

第二个数据帧(df2)

id         cash           age
1          200             30
2          338             28
3          436             49
6          023             72

我希望结果看起来像-

id      city_code       area_code
3          43             09
4          02             72
5          12             19

我做完了-

df3 = df1.select('id','city_code','area_code').subtract(df2.select('id','cash','age'))

df3.show()

但不起作用

1 个答案:

答案 0 :(得分:1)

您可以使用left_anti联接来过滤出两个df中具有相同id的行

 df1.join(df2, 'id', "left_anti").show()

返回:

+---+---------+---------+
| id|city_code|area_code|
+---+---------+---------+
|  4|       02|       72|
|  5|       12|       19|
+---+---------+---------+

您可以在此处了解有关left_semileft_anti的更多信息:https://medium.com/datamindedbe/little-known-spark-dataframe-join-types-cc524ea39fd5

相关问题