根据列减去2 pyspark数据帧

时间:2018-11-15 12:06:18

标签: python pyspark

我有2个pyspark数据帧,

i
+---+-----+
| ID|COL_A|
+---+-----+
|  1|  123|
|  2|  456|
|  3|  111|
|  4|  678|
+---+-----+
j
+----+-----+
|ID_B|COL_B|
+----+-----+
|   2|  456|
|   3|  111|
|   4|  876|
+----+-----+

我正在尝试根据特定列的值从i中减去j,即COL_A的{​​{1}}中存在的值不应该存在在i的{​​{1}}中。

预期输出应为

COL_B

这是我的代码,

j

但是输出出错了,

diff
+---+-----+
| ID|COL_A|
+---+-----+
|  1|  123|
|  4|  678|
+---+-----+

我在这里做错什么了吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

尝试:

left_join = i.join(j, j.COL_B == i.COL_A,how='left')
left_join.filter(left_join.COL_A.isNull()).show()

如果您将列名用作args,则可以执行以下操作:

left_join = i.join(j, j[colb] == i[cola],how='left')
left_join.filter(left_join[cola].isNull()).show()