2017-08-30 101 views
-1

我想根據列ID刪除重複的行。我怎樣才能得到有重複「ID」的丟棄的數據?這是我現在正在處理的代碼。根據列火花數據幀得到重複的行

val datatoBeInserted = data.select("id", "is_enabled", "code", "description", "gamme", "import_local", "marque", "type_marketing", "reference", "struct", "type_tarif", "family_id", "range_id", "article_type_id") 
val cleanedData = datatoBeInserted.dropDuplicates("id") 

使用上面的查詢,cleanData將給出沒有「id」重複的所有行。現在,我想知道哪些行因爲重複而被過濾掉。

+2

你嘗試'dataToBeInserted.except(cleanedData)'? – philantrovert

+0

@philantrovert請回答這個問題:) –

+0

@RameshMaharjan我把它標記爲重複:) – philantrovert

回答

0

您可以使用下面的代碼以找到被丟棄

val datatoBeInserted = data.select("id", "is_enabled", "code", "description", "gamme", "import_local", "marque", "type_marketing", "reference", "struct", "type_tarif", "family_id", "range_id", "article_type_id") 

val cleanedData = datatoBeInserted.dropDuplicates("id") 

val droppedData = datatoBeInserted.except(cleanedData) 

數據一切順利:)

+0

謝謝,我已經試過了,但它需要太多時間爲巨大的數據謝謝,是否有任何其他解決方案 –

+0

@MaherHTB問題是,當查看是否有一個列在cleanData中具有相同的ID,它可能在任何地方。所以操作必須進行大量的數據洗牌=>緩慢 –