例如,我有两个Spark作业的输出:a:part-00000 part-00001 ... part-00099,b:part-00000 part-00001 ... part-00099。
是否有一种简单的方法可以测试a是否等于b而不管线的顺序如何。请注意,spark分区顺序不一样,因此对于a和b中的part-00000可能会有所不同,即使a等于b。
答案 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