我有一个大的单词数据集,我必须计算单词频率的数量。更具体地说,让我说我有话语(be,to,the,the,now,now,now,see,see,see)。字频率是
是:1, 到:1, :2, 现在:3, 见:3
我想计算频率计数,所以我的输出是:
1:2
2:1
3:2
这可以在一个mapreduce程序中完成,还是我需要创建1个mapreduce作业来计算频率,另外一个来计算计数?
答案 0 :(得分:1)
如您所料,我相信您需要两个mapreduce
计划。
这将是正常的wordcount
计划。一个很好的教程是here。
它几乎与另一个wordcount
程序相似。步骤将是:
使用:
拆分输入行。例如在now: 3
上拆分:
以获得now
和3
(修剪)元素。它类似于在单词计数中拆分空格上的每个单词。
将数字部分写入上下文,其值为1
(作为计数1),即步骤1中的3
应输出为Key - > 3
,值 - > 1
。它与word
1
的计数wordcount
的输出相同
在reducer中只是针对每个键聚合计数。它类似于wordcount
中的汇总计数。