如何比较pyspark中两个不同数据框中的两列
How to compare two columns in two different dataframes in pyspark
我想将一个数据帧 1 中的 "pitid" 与另一个数据帧 2 的 "pitid" 进行比较,并希望提取数据帧 1 中缺失的行。
dataframe1:
| id|marks|name| pitid|
+---+-----+----+-----------+
| 1| 1| FR| 1496875194|
| 2| 1| US| -744211593|
| 5| 2| DE|-1433680238|
| 4| 1| DE| -366408878|
| 3| 3| DE| 526286357|
+---+-----+----+-----------+
dataframe2:
| id|marks|name| pitid|
+---+-----+----+-----------+
| 1| 1| FR| 1496875194|
| 7| 9| HY| -816101137|
| 6| 5| FE| 1044793796|
| 2| 1| US| -744211593|
| 5| 2| DE|-1433680238|
| 4| 1| DE| -366408878|
| 3| 3| DE| 526286357|
+---+-----+----+-----------+
预期输出:
| 7| 9| HY| -816101137|
| 6| 5| FE| 1044793796|
您可以使用joins
val diff = df2.join(df1,df2.col("pitid")!=df1.col("pitid"),"left")
如果两个数据框中所有列的值都相同,那么您可以使用 except
df2.subtract(df1)
两者都会在 dataframe2 中而不是在 dataframe1 中给出记录
我想将一个数据帧 1 中的 "pitid" 与另一个数据帧 2 的 "pitid" 进行比较,并希望提取数据帧 1 中缺失的行。
dataframe1:
| id|marks|name| pitid|
+---+-----+----+-----------+
| 1| 1| FR| 1496875194|
| 2| 1| US| -744211593|
| 5| 2| DE|-1433680238|
| 4| 1| DE| -366408878|
| 3| 3| DE| 526286357|
+---+-----+----+-----------+
dataframe2:
| id|marks|name| pitid|
+---+-----+----+-----------+
| 1| 1| FR| 1496875194|
| 7| 9| HY| -816101137|
| 6| 5| FE| 1044793796|
| 2| 1| US| -744211593|
| 5| 2| DE|-1433680238|
| 4| 1| DE| -366408878|
| 3| 3| DE| 526286357|
+---+-----+----+-----------+
预期输出:
| 7| 9| HY| -816101137|
| 6| 5| FE| 1044793796|
您可以使用joins
val diff = df2.join(df1,df2.col("pitid")!=df1.col("pitid"),"left")
如果两个数据框中所有列的值都相同,那么您可以使用 except
df2.subtract(df1)
两者都会在 dataframe2 中而不是在 dataframe1 中给出记录