首页 > 解决方案 > 在 map reduce word count 程序中,需要获取单词所在的文件

问题描述

我正在阅读多个输入文件以解决字数问题。

示例文件名: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

标签: javahadoopmapreducehadoop2hadoop-partitioning

解决方案


第一次输入一个拆分 String file = ((FileSplit)inputSplit).getPath().getName(); 并从映射器收集单词和文件名作为输出。

在 reducer 中,根据键计算文件名并增加计数器并继续附加文件名。

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

这解决了问题。


推荐阅读