Как рассчитать среднее число из текстового файла с MRJob - PullRequest
0 голосов
/ 27 ноября 2018

Я новичок в 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)

1 Ответ

0 голосов
/ 09 января 2019

вы можете использовать что-то вроде:

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)
...