2017-02-20 113 views
1

我有两个数据框。我想根据Data Frame-B中的一些常见列值删除Data Frame-A中的一些记录。如何筛选Spark Dataframe中有多个键的重复记录?

例如: 数据帧-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 

任何解决方案。

回答

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| 
+---+---+---+---+