例如,有两个带文字的文本文件,我需要在输出格式下面显示如何?请给出想法吗?
1.text1 with words
苹果
苹果
芒果
2.text2 with words
苹果
苹果
芒果
我需要显示这样的输出 文本1 苹果2 芒果1
text2的
apple 2
芒果1
总
苹果4
芒果2
答案 0 :(得分:0)
在映射器中将密钥设置为文件名+' |' +单词并向减速器发射。在你的情况下,mapper的输出将是这样的。
(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。使用符号' |'分隔密钥。并计算总和。将总和分配给静态变量。最后将输出写入文本文件