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>