merge - 使用 MapReduce 获取大文件中的重复记录

标签 merge mapreduce

我有一个包含 > 1000 万行的大文件。我想使用 MapReduce 获取重复行。 我怎么解决这个问题? 感谢帮助

最佳答案

您需要利用 MapReduce 的默认行为是根据公共(public)键对值进行分组这一事实。

所以所需的基本步骤是:

  1. 将文件的每一行读入映射器,可能使用类似 TextInputFormat 的东西。
  2. 将输出键(文本对象)设置为每一行的值。值的内容并不重要。如果需要,您可以将其设置为 NullWritable。
  3. 在reduce 中检查为每个键分组的值的数量。如果您有多个值,您就知道有一个重复值。
  4. 如果您只想要重复的值,请写出具有多个值的键。

关于merge - 使用 MapReduce 获取大文件中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732333/

相关文章:

visual-studio-2008 - 在 Visual Studio 2008 中合并时强制比较文件

arrays - 使用 Ruby 合并基于相似位置的数组哈希

python - 如何在 AppEngine MapReduce 中获取计数器结果?

exception - PIG (v0.10.0) FILTER 操作期间异常 : java. lang.Integer cannot be cast to java.lang.String

java - Hadoop gzip 压缩文件

google-maps - 如何合并多边形(纬度和经度)?

git - git merge --no-ff 和 git merge --squash 有什么区别

r - 将一个数据帧中的值合并并替换为 R 中另一个数据帧中的值

hadoop - 有没有一种方法可以将某种缓存用于Spark中最常用的查询的结果?

java - MapReduce 中的聚合