如何比较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 的两个不同 pyspark.sql.dataframes 中的两列中创建一个 pyspark.sql.dataframe

R-匹配两个数据帧中的两列

如果 pyspark 数据帧的行基于两列的值位于另一个数据帧中,如何删除它们?

想比较laravel中不同表的两列

如何比较mySql中的两列其中之一是Json