Ищу немного разъяснений по ответам на этот вопрос здесь:Multiple Output Files для Hadoop Streaming с Python Mapper
Generating Separate Output files in Hadoop Streaming
Мой случай использования выглядит следующим образом:
У меня есть задание отображения только для карты, которое принимает входной файл, выполняет много разбора и перебора, а затем записывает обратно. Однако некоторые строки могут быть или не быть в неправильном формате, и если это так, я хотел бы написать оригинальную строку в отдельный файл.
Кажется, что одним из способов сделать это было бы присвоить имя файла строке, которую я печатаю, и использовать параметр multipleOutputFormat. Например, если я изначально имел:
if line_is_valid(line):
print name + '\t' + comments
я мог бы вместо этого сделать:
if line_is_valid(line):
print valid_file_name + '\t' + name + '\t' + comments
else:
print err_file_name + '\t' + line
Единственная проблема у меня с этим решением является то, что я не хочу, чтобы имя_файла появляться в первой колонке в текстовых файлах. Полагаю, я мог бы запустить другую работу, чтобы вырезать первый столбец каждого файла, но это кажется глупым. Итак:
1) Является ли это правильным способом управления несколькими выходными файлами с помощью задания на создание python mapreduce?
2) Каков наилучший способ избавиться от этого начального столбца?
Ваш вопрос интересен. Я попытался ответить. Надеюсь, это имеет смысл. Пожалуйста, ответьте. Благодаря! –