Несколько выходных файлов для потоковой передачи Hadoop с помощью Python Mapper
Я ищу небольшое разъяснение ответов на этот вопрос здесь:
Генерация отдельных выходных файлов в Hadoop Streaming
Мой вариант использования выглядит следующим образом:
У меня есть задача mapreduce только для карт, которая принимает входной файл, много разбирает и анализирует, а затем записывает обратно. Однако некоторые строки могут иметь или не иметь неправильный формат, и если это так, я хотел бы записать исходную строку в отдельный файл.
Похоже, что один из способов сделать это - добавить имя файла к строке, которую я печатаю, и использовать параметр 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) Как лучше всего избавиться от этого начального столбца?