У меня проблема с использованием функции Mapreduce
Теперь я знаю, как найти рабочую ситуацию
from mrjob.job import MRJob
class MRWordCounter(MRJob):
def mapper(self, key, line):
for word in line.split():
yield word, 1
def reducer(self, word, occurrences):
yield word, sum(occurrences)
if __name__ == '__main__':
MRWordCounter.run()
, но что если вопрос похож на то, что мне нужно напечатать, в какой строке слово происходит, предположим, у меня есть следующий файл, имеющий следующие данные
line 1- goat,chicken,horse
line 2- cat,horse
line 3- dog,cat,sheep
line 4- buffalo,dolphin,cat
line 5- sheep
, поэтому вывод должен быть таким:
"buffalo" ["buffalo,dolphin,cat"]
"cat" ["buffalo,dolphin,cat", "cat,horse", "dog,cat,sheep"]
"chicken" ["goat,chicken,horse"]
"dog" ["dog,cat,sheep"]
"dolphin" ["buffalo,dolphin,cat"]
"goat" ["goat,chicken,horse"]
"horse" ["cat,horse", "goat,chicken,horse"]
"sheep" ["dog,cat,sheep", "sheep"]