hadoop-streaming.jar 在每行末尾添加 x'09'
hadoop-streaming.jar adds x'09' at the end of each line
我正在尝试使用以下 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')。
例如
零件文件中的数据。
00000320 7c 35 31 30 34 30 38 0a ||510408.|
合并文件中的数据(上述命令的结果)
00000320 7c 35 31 30 34 30 38 09 0a ||510408..|
如何避免这种情况发生?我可以在命令中设置一些选项来防止这种情况发生吗?
感谢您抽出宝贵时间 help/pointers。
我在这个 post -
中找到了答案
添加以下选项似乎可以解决问题。
-D mapred.textoutputformat.separator=<delimiter-of-input-file>
我正在尝试使用以下 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')。
例如
零件文件中的数据。
00000320 7c 35 31 30 34 30 38 0a ||510408.|
合并文件中的数据(上述命令的结果)
00000320 7c 35 31 30 34 30 38 09 0a ||510408..|
如何避免这种情况发生?我可以在命令中设置一些选项来防止这种情况发生吗?
感谢您抽出宝贵时间 help/pointers。
我在这个 post -
中找到了答案添加以下选项似乎可以解决问题。
-D mapred.textoutputformat.separator=<delimiter-of-input-file>