如何比较两个数据帧并在 pyspark 中提取不匹配的行?

How to compare two dataframes and extract unmatched rows in pyspark?

嗨,我有两个数据框。一个是父数据框,第二个是增量数据框。我只想提取那些存在于增量数据框中但不存在于基于键列的父数据框中的记录。

示例:

关键列:call_id

parent_dataframe:

call_id    call_nm    src
100        QC         Darzalex MM
105        XY         INVOKANA
107        CZ         Simponi  RA
117        NM         Guselkumab PSA
118        YC         STELARA
126        RF         INVOKANA

增量数据帧:

call_id    call_nm    src
118        YC         STELARA
126        RF         INVOKANA
131        VG         STELARA
135        IJ         Stelara CD

不匹配的数据框:

call_id    call_nm    src
131        VG         STELARA
135        IJ         Stelara CD

使用 left_anti 加入,增量优先。 Left_anti 检查第二个 df 中是否存在这些值,然后它们将缺失的值保留在 df 中。

Incremental.join(parent_dataframe,on='call_nm', how='left_anti').show()

+-------+-------+----------+
|call_nm|call_id|       src|
+-------+-------+----------+
|     IJ|    135|Stelara CD|
|     VG|    131|   STELARA|
+-------+-------+----------+