Я только что начал использовать mrJob (mapReduce для python) и новичок в парадигме MapReduce, я хотел бы узнать следующее о учебнике word_count.py, который присутствует на сайте документации MRJob.mrJob python mapReduce word_count.py
Документы говорят, что если мы создадим word_count.py и запустим его с помощью некоторого текстового файла, он будет вычислять и возвращать количество строк, символов и слов в текстовом файле. Вот код, который они используют для word_count.py:
from mrjob.job import MRJob
class MRWordFrequencyCount(MRJob):
def mapper(self, _, line):
yield "chars", len(line)
yield "words", len(line.split())
yield "lines", 1
def reducer(self, key, values):
yield key, sum(values)
if __name__ == '__main__':
MRWordFrequencyCount.run()
Здесь я понимаю, что мы расширим класс MRJob и переопределить картограф и редуктор методу. Но то, что я не получаю во время выполнения, мы выполняем, передавая весь текстовый файл следующим образом:
python word_count.py entire_text_file.txt
так как делает картографа знать, как разобрать его на одну строку за один раз? В основном, мой вопрос заключается в том, каков будет вход в функцию mapper(), определенную выше? Будет ли это содержимое всего файла в целом или по одной строке за раз. И если это одна строка, какая часть кода MRJob заботится о поставке одной строки за раз в функцию mapper(). Надеюсь, что мой изначальный туманный вопрос был менее расплывчатым, но это меня полностью застопорило. Любая помощь будет оценена по достоинству.
Заранее благодарен!
благодарит за ваш отзыв, было очень полезно. Что означает «K»? в RTKC? :п. Я слышал RTFC и RTFM, но никогда RTKC: p – anonuser0428
oops, извините за typo^_^благодарит меня за исправление – zhutoulala
haha Я просто должен был это знать! – anonuser0428