如何解决当记录不按顺序时,df1减去df2在Pyspark中无法按预期工作
我有2个文件。在一个file1
中,我有998
条记录;在另一个file2
中,我有1000
条记录。现在,当我尝试df1.subtract(df2)
时,它会提供998
条记录,而当我尝试df2.subtract(df1)
时,它会给出1000
作为计数。我也在excel中手动比较了它。除file2
中的其他记录外,所有记录均相同。因此,expected
的{{1}}输出应该为2。我在哪里出错?不管行顺序如何,都有什么方法可以匹配两个数据帧?
df2.subtract(df1)
:
第一种方法:
df2
解决方法
因此,我发现我的数据有unique ID
,并且在find different records
时,我将以下代码用于counts are different in two datasets
。如果两个数据集中的计数不同,则subtract
或exceptAll
之类的内置方法将不起作用。我什至尝试了各种类型的joins
,但没有解决。您可能需要像我一样做类似的事情。
df2.createOrReplaceTempView("temp2")
df1.createOrReplaceTempView("temp1")
spark.sql("select * from temp2 where `Order ID` not in (select `Order ID` from temp1)").show()
因此,这给出了我一直在df2.subtract(df1)
中寻找的2条记录
希望这种方法有一天能对某人有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。