如何在Spark Dataframe中过滤具有多个键的重复记录?

时间:2017-02-20 18:16:53

标签: scala apache-spark dataframe

我有两个数据帧。我想根据Data Frame-B中的一些常见列值删除Data Frame-A中的一些记录。

例如:     数据框-A:

A B C D
1 2 3 4
3 4 5 7
4 7 9 6
2 5 7 9


    数据框-B:

A B C D
1 2 3 7
2 5 7 4
2 9 8 7


Keys: A,B,C columns

期望的输出:

A B C D
3 4 5 7
4 7 9 6

任何解决方案。

1 个答案:

答案 0 :(得分:3)

您正在寻找left anti-join

df_a.join(df_b, Seq("A","B","C"), "leftanti").show()
+---+---+---+---+
|  A|  B|  C|  D|
+---+---+---+---+
|  3|  4|  5|  7|
|  4|  7|  9|  6|
+---+---+---+---+