如何使用Spark检查两个HDFS数据集是否相等?

时间:2017-08-02 17:16:28

标签: scala apache-spark

例如,我有两个Spark作业的输出:a:part-00000 part-00001 ... part-00099,b:part-00000 part-00001 ... part-00099。

是否有一种简单的方法可以测试a是否等于b而不管线的顺序如何。请注意,spark分区顺序不一样,因此对于a和b中的part-00000可能会有所不同,即使a等于b。

1 个答案:

答案 0 :(得分:4)

您可以计算两个数据帧(公共线)的交叉点并检查其大小:

val df1 = spark.read.parquet("file1")
val df2 = spark.read.parquet("file2")
val equal = df1.count == df2.count && df2.count == df1.intersect(df2).count