【发布时间】:2013-09-29 11:47:02
【问题描述】:
我有一个蜂巢查询:
insert override directory /x
select ...
然后我尝试用 sqoop 导出数据
sqoop export --connect jdbc:mysql://mysqlm/site --username site --password site --table x_data --export-dir /x --input-fields-terminated-by 0x01 --lines-terminated-by '\n'
但这似乎无法根据分隔符解析字段 我错过了什么? 我认为 --input-fields-terminated-by 0x01 部分没有按预期工作?
我不想在 hive 中创建包含查询结果的其他表。
堆栈跟踪:
2013-09-24 05:39:21,705 ERROR org.apache.sqoop.mapreduce.TextExportMapper: Exception:
java.lang.NumberFormatException: For input string: "9-2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
...
输出的vi视图
16-09-2013 23^A1182^A-1^APub_X^A21782^AIT^A1^A0^A0^A0^A0^A0.0^A0.0^A0.0
16-09-2013 23^A1182^A6975^ASoMo Audience Corp^A2336143^AUS^A1^A1^A0^A0^A0^A0.2^A0.0^A0.0
16-09-2013 23^A1183^A-1^APub_UK, Inc.^A1564001^AGB^A1^A0^A0^A0^A0^A0.0^A0.0^A0.0
17-09-2013 00^A1120^A-1^APub_US^A911^A--^A181^A0^A0^A0^A0^A0.0^A0.0^A0.0
【问题讨论】:
-
是 --input-fields-terminated-by 0x01 部分工作不正常。你可以试试这个:sqoop export --connect jdbc:mysql://mysqlm/site --username site --password site --table x_data --export-dir /x --input-fields-terminated-by '\001' --input-null-string '\\N' --input-null-non-string '\\N'
-
@MukeshS 分隔符 '\001',对我不起作用,而是 '\0001' 起作用。额外的“0”起到了作用