检查Spark Dataframe 是否相等?

jgovgodb  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(146)

我正在pyspark中比较两个大约100gb的大型 Dataframe ,但在进行行级和列级验证之前,需要比较两个 Dataframe 之间是否存在确实的差异。
我需要一种方法,我可以生成一个校验和或类似的方法,为两个 Dataframe ,我可以比较,并说他们是相等或不。
这是我发现的一种方法,它适用于两个 Dataframe 的小数据集,并比较它们是否相同,但不幸的是,由于要处理的数据太多,它会给予我带来内存不足的问题。

df1=spark.read.format("csv").option("header","true").csv(file1)
print(hashlib.sha256(df1.toPandas().to_json().encode()).hexdigest())

有没有什么办法,我们可以先比较一下,然后再去蛮力比较?

erhoui1w

erhoui1w1#

Dataframe 求交法是一种解决方法。

intersectcount = df1.intersect(df2).count()
   if (intersectcount == df1.count()) && (intersectcount==df2.count()):
       #Equal dataframes

相关问题