hadoop-streaming.jar добавляет x'09'в конце каждой строки

Я пытаюсь объединить некоторые файлы *_0 (файлы деталей в HDFS) в папку HDFS с помощью приведенной ниже команды hadoop-streaming.jar.

  hadoop jar $HDPHOME/hadoop-streaming.jar -Dmapred.reduce.tasks=1 -input $INDIR -output $OUTTMP/${OUTFILE}  -mapper cat -reducer cat

Все работает хорошо - Кроме того, у меня возникают проблемы, так как, результат приведенной выше команды, кажется, добавляет x'09'в конец каждой строки.

У нас есть таблицы Hive, определенные поверх файлов деталей (которые заменяются объединенным файлом), где последнее поле определено как BIGINT. Поскольку объединенный файл добавляет x'09'к последнему полю - то же самое определение tbale теперь показывает NULL в последнем поле в Hue (так как 510408 больше не является числом, поскольку X'09' добавляется к нему).

например

Данные в файле детали.

00000320  7c 35 31 30 34 30 38 0a                           ||510408.|

Данные в объединенном файле (результат вышеуказанной команды)

00000320  7c 35 31 30 34 30 38 09  0a                       ||510408..|

Как мне избежать этого? Есть ли какая-либо опция, которую я могу установить в команде, чтобы предотвратить это?

Цените свое время за любую помощь / указатели.

1 ответ

Решение

Я нашел ответ в этом посте -

Добавление опции ниже, похоже, решает эту проблему.

-D mapred.textoutputformat.separator=<delimiter-of-input-file>
Другие вопросы по тегам