Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hadoop mapreduce中的重复项_Java_Hadoop_Mapreduce_Duplicates - Fatal编程技术网

Java hadoop mapreduce中的重复项

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

我从hadoop 0.20.2开始。我想从我在这里找到的代码的基本字数问题开始:

这是应该的。 但是,当单词在多个文件中分开时,我想计算每个文件的单词数,因此我将映射器更改为:

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的核心。谢谢