我已经开始处理一个以 JSON 格式到达的大型数据集。不幸的是,提供数据馈送的服务提供了大量的重复记录。从好的方面来说,每条记录都有一个唯一的 ID 号,存储为 64 位正整数(Java long)。
数据每周到达一次,每次交付大约有 1000 万条记录。我需要从当前交付以及以前批次中的记录中排除重复项。
解决重复数据删除问题的蛮力方法是将 Id 编号推入 Java Set中。由于Set接口要求唯一性,因此插入过程中的失败将表明重复。
问题是:只要我导入记录,是否有更好的方法来查找重复项?
我正在使用 Hadoop 来挖掘数据,所以如果有一种使用 Hadoop 对记录进行重复数据删除的好方法,那将是一个额外的好处。