hadoop-streaming.jar添加x' 09'在每一行的末尾

时间:2017-08-10 17:41:02

标签: hadoop hadoop-streaming

我正在尝试使用下面的hadoop-streaming.jar命令合并HDFS位置中的一些* _0(HDFS中的部分文件)文件。

  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定义现在在Hue的最后一个字段中显示NULL(因为510408不再是数字,因为X' 09'被添加到它中)。

e.g。

零件文件中的数据。

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

合并文件中的数据(上述命令的结果)

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

如何避免这种情况发生?我可以在命令中设置一些选项来防止这种情况吗?

感谢您抽出任何帮助/指针的时间。

1 个答案:

答案 0 :(得分:0)

我在post -

中找到了答案

添加以下选项似乎可以解决它。

-D mapred.textoutputformat.separator=<delimiter-of-input-file>