2017-08-02 38 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 
相關問題