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