我有一个包含 > 1000 万行的大文件。我想使用 MapReduce 获取重复行。 我怎么解决这个问题? 感谢帮助
最佳答案
您需要利用 MapReduce 的默认行为是根据公共(public)键对值进行分组这一事实。
所以所需的基本步骤是:
- 将文件的每一行读入映射器,可能使用类似 TextInputFormat 的东西。
- 将输出键(文本对象)设置为每一行的值。值的内容并不重要。如果需要,您可以将其设置为 NullWritable。
- 在reduce 中检查为每个键分组的值的数量。如果您有多个值,您就知道有一个重复值。
- 如果您只想要重复的值,请写出具有多个值的键。
关于merge - 使用 MapReduce 获取大文件中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732333/