Входной файл для локальных заданий MRJob

Я изучаю/тестирую mrjobs на своем ноутбуке, используя пример подсчета слов.

Я могу предоставить локальный файл в качестве входных данных в командном режиме, но не знаю, как сделать то же самое из скрипта Python.

Очень ценю простой пример.

Спасибо, Анант.


person akrishnamo    schedule 31.05.2013    source источник
comment
Какой скрипт на питоне вы имеете в виду? Вы почти всегда запускаете mrjob и указываете ввод из командной строки.   -  person jkgeyti    schedule 23.06.2013
comment
Я думаю, вы хотите этого: stackoverflow.com/questions/12569261/   -  person Frank    schedule 27.08.2013
comment
@jkgeyti Но что, если мы хотим ввести этот ввод из программы, а не из командной строки?   -  person Saurabh Verma    schedule 09.02.2015
comment
Прошло некоторое время с тех пор, как я работал с mrjob. Я бы внимательно посмотрел на исходный файл mrjob, чтобы увидеть, как он отправляет задания. В качестве альтернативы вы можете просто запустить подпроцесс из Python и отправить его, как если бы вы делали это из командной строки.   -  person jkgeyti    schedule 09.02.2015


Ответы (1)


не совсем понял, о чем вы спрашиваете, но я думаю, вы ищете что-то вроде этого

[root@localhost code]# cat mr_example.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()

[root@localhost code]# cat test_file 
aaaa
dd dx csadsad
2321 dasdtokcmk
mii xsa
xaaaa
casd

[root@localhost code]# python mr_example.py test_file
...
"chars" 50
"lines" 6
"words" 10
person zhutoulala    schedule 14.11.2013