java - 如何从大型数据提要中排除重复记录?

标签 java hadoop deduplication

我已经开始处理一个以 JSON 格式到达的大型数据集。不幸的是,提供数据馈送的服务提供了大量的重复记录。从好的方面来说,每条记录都有一个唯一的 ID 号,存储为 64 位正整数(Java long)。

数据每周到达一次,每次交付约 1000 万条记录。我需要从当前交付以及之前批处理中的记录中排除重复项。

解决重复数据删除问题的强力方法是将 Id 编号插入 Java Set。由于 Set 接口(interface)需要唯一性,因此插入期间的失败将指示重复。

问题是:在我导入记录时,是否有更好的方法来查找重复的 long

我正在使用 Hadoop 来挖掘数据,因此,如果有一种使用 Hadoop 来删除重复记录的好方法,那将是一种奖励。

最佳答案

您能否创建一个 MapReduce 任务,其中 map 输出具有唯一 ID 号的键?这样,在您的 reduce 任务中,您将获得一个包含具有该 ID 号的所有值的迭代器。只输出第一个值,你减少的输出将没有重复。

关于java - 如何从大型数据提要中排除重复记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7393149/

相关文章:

java - 是否可能与 URLEncoder 发生名称冲突

hadoop - pig 中的虚拟列

hadoop - 无法在 pig 中执行求和运算

java - 按继续按钮后如何更改红色容器?只需要更换红色容器

java - 如何在Java中创建带有小数的方程?

java - org.postgres.Driver 类异常 - 初学者

java - Hive jdbc.query(sql, rowmapper) 抛出 UnCatogarized 异常

c - 顺序逐字节比较

python 2.7 : Dedup list by adding suffix

mysql - 重复数据删除数据库记录比较多个字段中的值