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也可能不同。
例如,我有两个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也可能不同。
,你可以计算两个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