pyspark 比较给定列上的两个 Dataframe

fsi0uk1n  于 2023-01-04  发布在  Spark
关注(0)|答案(1)|浏览(144)

我有两个列集不同的 Dataframe DF1和DF2

------------------------------------------------
DF1                                                 
col1 col2 col3  col4 col5   col6    col7 
---------------------------------------------           
Asr  Suh  dervi xyz  yes    NY      2022-04-11      
Bas  nav  dervi xyz  yes    CA      2022-04-11      
Naz  adn  otc   xyz   no    NJ      2022-05-01    

---------------------------------------------------

DF2
col1 col2 col3 col4 
------------------------------------------------------
Asr  Suh  dervi xyz  
Bas  nav  dervi xyz  
--------------------------------------------------------

我想基于col2和Col3比较这两个 Dataframe ,并从DF1中过滤掉不匹配的行。
因此,比较操作应在数据集中给予以下行

df3
Naz  adn  otc  xyz   no NJ  2022-05-01
nhhxz33t

nhhxz33t1#

Pandas中没有左反连接,首先使用指示符=True的外连接。

cols = ['col2', 'col3']
_df = df1[cols].merge(df2[cols], how='outer', indicator=True)
_df = _df[_df._merge=='left_only'].drop('_merge', axis=1)
df3 = df1.merge(_df, on=cols)
df3

相关问题