Мне не хватает чего-то очевидного в библиотеке Yelp's mrjob job. Настройка класса MRJob почти тривиально проста. Запуск его над file или stdin также так. Но как я могу изменить вход в задание из файла локально или в s3, например, в ведро s3?Как я могу использовать имена объектов s3 в качестве входов в MapManager MRJob, но не сами объекты s3?
Нечто подобное. Предположим, что я хотел, чтобы сосчитать все предметы в моем S3 ведро, начинающиеся со строки «Foo»:
import re
class MRCountS3Objects(MRJob):
define mapper(self, _, botoS3Key):
if re.match('^foo', botoS3Key.name):
yield 'foo', 1
define reduce(self, name, occurrences):
yield name, sum(occurrences)
Это очень надуманный пример, но вы, вероятно, получите мой дрейф. Как я могу сообщить MRJob о работе над потоком объектов s3, игнорируя содержимое объектов? Я видел S3Filesystem.get_s3_keys() method, который получает мне ровно тот поток, в котором я нуждаюсь, но я не уверен, куда идти оттуда.