Как отфильтровать ключи или значения в Hadoop map/ уменьшить выходной файл задания?

Как правило, Hadoop map/reduce job создает список пар ключ-значение, которые записываются в выходной файл задания (используя OutputFormat учебный класс). В редких случаях полезны как ключи, так и значения, обычно либо ключи, либо значения содержат необходимую информацию.

Есть ли опция (на стороне клиента) для подавления клавиш в выходном файле или для подавления значений в выходном файле? Если бы я хотел сделать это только для одной конкретной работы, я мог бы создать новую OutputFormat реализация, которая будет игнорировать ключи или значения. Но мне нужно универсальное решение, которое можно использовать повторно для большего количества рабочих мест.

РЕДАКТИРОВАТЬ: Может быть неясно, что я подразумеваю под "мне нужно универсальное решение, которое можно использовать повторно для большего количества рабочих мест". Позвольте мне объяснить это на примере:

Допустим, у меня много подготовленных Mapper, Reducer, OutputFormats классы. Я хочу объединить их с разными "заданиями" и запустить эти "задания" для разных входных файлов, чтобы получить разные выходные файлы. В некоторых случаях (для некоторых заданий) мне нужно подавлять клавиши, чтобы они не записывались в выходной файл. Я не хочу менять код моих картографов, редукторов форматов вывода - их слишком много, чтобы сделать это. Мне нужно какое-то общее решение, которое не должно изменять код данных картографов, редукторов или выходных форматов. Как я могу это сделать?

1 ответ

Нет причины, по которой ваш последний шаг в потоке hadoop не может быть настроен на запись NullWritable в качестве ключа или значения. Вы просто не должны ожидать, что этот файл будет широко использоваться на любых последующих шагах сокращения карты.

Другие вопросы по тегам