Spark RDD包含兩個字段F1和F2,並通過運行SQL查詢來填充。檢查RDD中的字段是否包含唯一值
F1必須是唯一的,而F2沒有這個約束。實際上,F2和F1之間有一對多的關係。一個F2值可以與幾個F1值相關聯,但不是相反的方式。
使用Scala,什麼是最簡單的函數式編程結構,用於對RDD進行檢查,以確保從SQL返回的數據不違反此約束。
感謝
Spark RDD包含兩個字段F1和F2,並通過運行SQL查詢來填充。檢查RDD中的字段是否包含唯一值
F1必須是唯一的,而F2沒有這個約束。實際上,F2和F1之間有一對多的關係。一個F2值可以與幾個F1值相關聯,但不是相反的方式。
使用Scala,什麼是最簡單的函數式編程結構,用於對RDD進行檢查,以確保從SQL返回的數據不違反此約束。
感謝
如果這是從SQL查詢比這個人口一定是一個數據幀,比你可以簡單地通過使用
df.select("order").distinct().count() == df.count()
如果你已經轉換到RDD比你可以直接使用驗證此在@pphilantrovert建議
df.groupBy(_._1).count == df.count
注:這是一個昂貴的任務,如果數據集較大
希望這有助於!
謝謝。使用DataFrame時,如何找到不唯一的特定條目? – user1052610
您可以按順序分組,然後對訂單進行計數,然後篩選出計數是否小於2,剩下的得分不是唯一的。 –
如果您打算使用RDD(不是DataFrames),那麼使用下面的代碼片段可以方便您使用。比方說,你RDD是inputRDD
有2場第一個將被用作關鍵第二的值:
inputRDD.countByKey.filter(_._2 > 1)
在沒有重複的情況下,它應該返回空Map()
否則地圖包括重複鍵(第一場)
行我希望你的RDD很小:D'rdd.groupBy(_._ 1).count == rdd.count' – philantrovert