Нет, вы не можете в традиционном смысле этого слова.
Причина: MrJob внутренне использует потоковую передачу Hadoop для выполнения заданий сопоставления/уменьшения при работе с кластером Hadoop. Я предполагаю, что это то же самое для Amazon Elastic M/R, что и для кластера Hadoop.
--output-dir
на самом деле является входом для потоковой передачи Hadoop, который указывает, где будут собираться выходные данные редукторов. Вы не можете использовать этот механизм для разделения данных по разным папкам.
[Изменить: в ответ на комментарий]
Насколько я понимаю, boto — это всего лишь библиотека для подключения к сервисам Amazon и доступа к ec2, s3 и т. д.
В нетрадиционном смысле вы все еще можете писать в разные каталоги, я думаю.
Я не проверял эту идею и не рекомендую этот подход. Это было бы похоже на открытие файла и запись в него непосредственно в редьюсерах. Теоретически вы могли бы это сделать. Вместо того, чтобы просто записывать вывод редуктора в std.out. Возможно, вы могли бы открывать и записывать объекты S3 напрямую. Вы должны убедиться, что вы будете открывать разные файлы, поскольку они порождают несколько редукторов.
Вот что я узнал, используя MrJob с кластером Hadoop: http://pyfunc.blogspot.com/2012/05/hadoop-map-reduce-with-mrjob.html
person
pyfunc
schedule
18.06.2012