2017-08-02 39 views
1

例如,我有两个Spark作业的输出:a:part-00000 part-00001 ... part-00099,b:part-00000 part-00001 ... part-00099。如何使用Spark检查两个HDFS数据集是否相等?

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

回答

4

,你可以计算两个dataframes的交点(公共线),并检查其大小:

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