根据列火花数据帧得到重复的行
问题描述:
我想根据列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”重复的所有行。现在,我想知道哪些行因为重复而被过滤掉。
答
您可以使用下面的代码以找到被丢弃
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,它可能在任何地方。所以操作必须进行大量的数据洗牌=>缓慢 –
你尝试'dataToBeInserted.except(cleanedData)'? – philantrovert
@philantrovert请回答这个问题:) –
@RameshMaharjan我把它标记为重复:) – philantrovert