当我有\ N作为数据时,sqoop-export失败

rin*_*maz 2 hive sqoop

当我运行sqoop export命令时,我得到以下错误.

这是我要通过sqoop命令导出的内容

00001|Content|1|Content-article|\N|2015-02-1815:16:04|2015-02-1815:16:04|1      |\N|\N|\N|\N|\N|\N|\N|\N|\N
00002|Content|1|Content-article|\N|2015-02-1815:16:04|2015-02-1815:16:04|1      |\N|\N|\N|\N|\N|\N|\N|\N|\N

sqoop命令

sqoop export --connect jdbc:postgresql://10.11.12.13:1234/db --table table1 --username user1 --password pass1--export-dir /hivetables/table/   --fields-terminated-by '|' --lines-terminated-by '\n'  -- --schema schema
Run Code Online (Sandbox Code Playgroud)

15/06/09 08:05:16 INFO mapreduce.Job:任务ID:attempt_1431442954745_1210_m_000001_0,状态:FAILED错误:java.io.IOException:无法导出数据,请检查org.apache.sqoop中失败的地图任务日志. map.ucext.TextExportMapper.map(TextExportMapper.java:112)org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)org.apache.hadoop.mapred.MapTask.run (MapTask.java:340)org.apache.hadoop.mapred.YarnChild $ 2.run(YarnChild.java:168)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs( Subject.java:415)org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594)at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)引起:java.lang .RuntimeException:无法解析输入数据:'\ N" 在duser .__ loadFromFields(duser.java:690)在duser.parse(duser.java:558)在org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)... 10更致:java.lang.IllegalArgumentException:时间戳格式必须是yyyy-mm-dd hh:mm:ss [.fffffffff] at java.sql.Timestamp.valueOf(Timestamp.java:202)at duser .__ loadFromFields(duser.java:627) )

你能帮我解决一下吗?

Nad*_*ine 5

尝试将这些参数添加到export语句中

--input-null-string "\\\\N" --input-null-non-string "\\\\N"
Run Code Online (Sandbox Code Playgroud)

从文档:

如果未指定--input-null-string,则对于字符串类型的列,字符串"null"将被解释为null.如果未指定--input-null-non-string,则对于非字符串列,字符串"null"和空字符串都将被解释为null.

如果您不添加这些参数,它将无法理解\N数据中的实际内容null.