我正在读取多个输入文件以解决字数统计问题。
示例文件名: file1.txt file2.txt file3.txt
我能够得到单词计数,但是如果我还想获得文件名以及单词存在的数量,应该添加什么。
例如
文件1的内容:欢迎使用Hadoop
文件2的内容:这是hadoop
当前输出:
Hadoop 2
是1
此1
至1
欢迎1
预期输出:
Hadoop 2 File01.txt File02.txt
是1个File02.txt
这1个File02.txt
至1 File01.txt
欢迎1 File01.txt
答案 0 :(得分:1)
第一次输入分割
String file = ((FileSplit)inputSplit).getPath().getName();
并从mapper收集单词和文件名作为输出。
在化简器中,根据键计数文件名,并递增计数器,并继续附加文件名。
file += filename;
textString = counter + file;
output.collect(key,new Text(textString));
这解决了问题。