2017-08-30 97 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,它可能在任何地方。所以操作必须进行大量的数据洗牌=>缓慢 –