如何比较pyspark中两个不同数据帧中的两列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较pyspark中两个不同数据帧中的两列相关的知识,希望对你有一定的参考价值。
我想比较一个dataframe1中的“pitid”和另一个dataframe2的“pitid”,并想要提取dataframe1中缺少的行。
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中给出记录
以上是关于如何比较pyspark中两个不同数据帧中的两列的主要内容,如果未能解决你的问题,请参考以下文章
在 PySpark 的两个不同 pyspark.sql.dataframes 中的两列中创建一个 pyspark.sql.dataframe