在map-reduce-word-count程序中,需要获取单词所在的文件

nuypyhwy  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(358)

我正在读取多个输入文件的字数问题。
文件名示例:file1.txt file2.txt file3.txt
我可以得到字数,但什么应该被添加,如果我也想得到的文件名连同字数存在的地方。
例如,
文件1的内容:欢迎使用hadoop
文件2的内容:这是hadoop
电流输出:
hadoop 2
是1
这个1
到1
欢迎1
预期产量:
hadoop 2文件01.txt文件02.txt
是1 file02.txt
此1 file02.txt
至1 file01.txt
欢迎使用1 file01.txt

2vuwiymt

2vuwiymt1#

第一个输入一个分割 String file = ((FileSplit)inputSplit).getPath().getName(); 并从Map器中收集单词和文件名作为输出。
在reducer中,根据键计算文件名,并递增计数器,然后继续追加文件名。

file += filename;
   textString = counter + file;
   output.collect(key,new Text(textString));

这就解决了问题。

相关问题