我的第一个数据帧(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()
但不起作用
答案 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_semi
和left_anti
的更多信息:https://medium.com/datamindedbe/little-known-spark-dataframe-join-types-cc524ea39fd5