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
程序非常相似。步骤为:
用 :
拆分输入行。例如在 :
上拆分 now: 3
以具有 now
和 3
(修剪)元素。它类似于在字数中 space 拆分每个字。
将数字部分写入上下文,作为 1
(作为计数 1),即步骤 1 中的 3
应输出为 Key -> 3
, 值 -> 1
。它与输出 a word
with count as 1
in wordcount
相同
在 reducer 中,只需聚合每个键的计数。它类似于 wordcount
.
中的聚合计数
我有一个很大的单词数据集,我必须计算单词频率的数量。更具体地说,假设我有这些词(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
程序非常相似。步骤为:
用
:
拆分输入行。例如在:
上拆分now: 3
以具有now
和3
(修剪)元素。它类似于在字数中 space 拆分每个字。将数字部分写入上下文,作为
1
(作为计数 1),即步骤 1 中的3
应输出为 Key ->3
, 值 ->1
。它与输出 aword
with count as1
inwordcount
相同
在 reducer 中,只需聚合每个键的计数。它类似于
wordcount
. 中的聚合计数