如何在map reduce程序中获取每个文件的输入文件名和字数?

how to get input file name and number of word in each file in map reduce program?

例如有两个带有单词的文本文件,我需要在下面显示输出格式如何?请给出想法?
1.text1 带字
苹果 苹果 芒果

2.text2 带字
苹果 苹果 芒果

我需要像这样显示输出 文本1 苹果 2 芒果 1

文本 2
苹果 2
芒果 1

总计
苹果 4
芒果 2

在映射器中将键设置为文件名+'|' +word 并发送到 reducer。在您的情况下,映射器的输出将是这样的。

(text1|apple,1)
(text1|apple,1)
(text1|mango,1)
(text2|apple,1)
(text2|apple,1)
(text2|mango,1) 

洗牌和排序阶段后的输出将是这样的

(text1|apple,{1,1})
(text1|mango,{1})
(text2|apple,{1,1})
(text2|mango,{1})

在reducer中你可以编写逻辑来计算每个文本文件中苹果和芒果的数量。(计算坚持数组的值的数量)

要找到全局总和,请声明静态变量 mangos 和 apples。使用符号“|”分隔密钥并计算总和。将总和分配给静态变量。最后将输出写入文本文件