Mapreduce 作业查找 python 中的单词频率计数

Mapreduce Job to find count of word frequencies in python

我有一个很大的单词数据集,我必须计算单词频率的数量。更具体地说,假设我有这些词(be,to,the,the,now,now,now,see,see,see)。词频为

是:1, 至:1, 的: 2, 现在:3, 参见:3

我想计算频率计数,所以我的输出是:

1:2

2:1

3:2

这可以在一个 mapreduce 过程中完成,还是我需要创建 1 个 mapreduce 作业来计算频率,另一个来计算计数?

如您所料,我相信您需要两个 mapreduce 程序。

  • 统计字数

这将是正常的 wordcount 程序。 here.

是一个不错的教程
  • 计算频率。

它与另一个 wordcount 程序非常相似。步骤为:

  1. : 拆分输入行。例如在 : 上拆分 now: 3 以具有 now3(修剪)元素。它类似于在字数中 space 拆分每个字。

  2. 将数字部分写入上下文,作为 1(作为计数 1),即步骤 1 中的 3 应输出为 Key -> 3, 值 -> 1 。它与输出 a word with count as 1 in wordcount

  3. 相同
  4. 在 reducer 中,只需聚合每个键的计数。它类似于 wordcount.

  5. 中的聚合计数