Привет всем Я решил проблему, вот рабочий код для подсчета слов. По сути, для меня работала простая замена.
из mrjob.job импорта MRJob импорта повторно
WORD_RE = re.compile (г "[\ ш '] +")
класс MRMostUsedWord (MRJob):
def mapper_get_words(self, _, line):
# yield each word in the line
for word in WORD_RE.findall(line):
yield (word.lower(), 1)
def combiner_count_words(self, word, counts):
# sum the words we've seen so far
yield (word, sum(counts))
def reducer_count_words(self, word, counts):
# send all (num_occurrences, word) pairs to the same reducer.
# num_occurrences is so we can easily use Python's max() function.
yield None, (sum(counts), word)
# discard the key; it is just None
def reducer_find_max_word(self, _, word_count_pairs):
# each item of word_count_pairs is (count, word),
# so yielding one results in key=counts, value=word
yield max(word_count_pairs)
def steps(self):
return [
self.mr(mapper=self.mapper_get_words,
combiner=self.combiner_count_words,
reducer=self.reducer_count_words),
self.mr(reducer=self.reducer_find_max_word)
]
если изменения имен == 'основного': MRMostUsedWord.run()
вероит умело, потому что в mrjob нет модуля или файла – dnit13
от mrjob.job import MRJob отлично работает, братан. – NoobFromVN
Нет. Это недопустимый синтаксис, @ R.Murray. Im следуют за учебником, и я видел, как он работает нормально. Другое дело в том, что они используют окно и я использую ubuntu – NoobFromVN