考虑一个包含用空格分隔的单词的文件;用python编写mapreduce程序,计算每个3字序列出现在文件中的次数。
例如,考虑以下文件:
one two three seven one two three
three seven one
seven one two
此文件中每个3字序列出现的次数为:
"three seven one" 2
"four seven one two" 1
"one two three" 2
"seven one two" 2
"two three seven" 1
代码格式:
from mrjob.job import MRJob
class MR3Nums(MRJob):
def mapper(self,_, line):
pass
def reducer(self,key, values):
pass
if __name__ == "__main__":
MR3Nums.run()
1条答案
按热度按时间ctrmrzij1#
Map器应用于每一行,并且应该对每个3字序列进行计数,即产生3字序列,同时计数为1。
减速器称为
key
以及values
,在哪里key
是一个3字序列values
是一个计数列表(应该是一个1的列表)。reducer可以简单地返回3字序列的一个元组和出现的总次数,后者通过sum获得。