Java hadoop mapreduce中的重复项
我从hadoop 0.20.2开始。我想从我在这里找到的代码的基本字数问题开始: 这是应该的。 但是,当单词在多个文件中分开时,我想计算每个文件的单词数,因此我将映射器更改为:Java hadoop mapreduce中的重复项,java,hadoop,mapreduce,duplicates,Java,Hadoop,Mapreduce,Duplicates,我从hadoop 0.20.2开始。我想从我在这里找到的代码的基本字数问题开始: 这是应该的。 但是,当单词在多个文件中分开时,我想计算每个文件的单词数,因此我将映射器更改为: String fileName = ((org.apache.hadoop.mapreduce.lib.input.FileSplit) context.getInputSplit()).getPath().getName(); word.set(itr.nextToken()+"@"+fil
String fileName = ((org.apache.hadoop.mapreduce.lib.input.FileSplit) context.getInputSplit()).getPath().getName();
word.set(itr.nextToken()+"@"+fileName);
但是我在mapreduced文件中得到了重复项,如下所示:
word1@file11.
word2@file21.
word2@file2~ 1
所以word2@file2~1不应该在那里
有人知道我做错了什么吗
谢谢您确定没有在hadoop作业的输入中添加末尾带有波浪线的文件吗?有些编辑器(如Gedit)在每次编辑文件时都会生成它们 听起来你的文本编辑器是自动保存文件的。例如,emacs通常在文件名前面创建自动保存,并使用
~
。在这种情况下,您将得到file2
和file2~
。哦,当然。愚蠢的我整天都在探索hadoop的核心。谢谢