我是MrJob的初学者,无法从素数文本文件计算平均素数。我不确定在哪一部分应用算术逻辑,也不确定在使用MrJob时是否应该产生列表。 文本文件包含一百万个素数,这是到目前为止我要介绍的内容,我不知道我的情况下关键值应该是什么。
%%writefile prime_average.py
from mrjob.job import MRJob
class primeAverages(MRJob):
def mapper(self, _, line):
results = []
for x in line.split():
if(x.isdigit()):
yield x, 1
def reducer(self, word, key):
yield word, sum(word)/len(key)
答案 0 :(得分:0)
您可以使用类似的内容:
def mapper(self, _, line):
if line.isdigit():
yield (None, int(line))
def reducer(self, key, values):
s = 0 #sum of primes
c = 0 #number of primes
for p in values:
s += p
c += 1
yield (None, s / c)