我试图运行sqoop export将配置单元表行加载到netezza表中。问题是我有一些列包含值数组,我在netezza中为这些列数据类型创建了ddl varchar(200),并运行sqoop作业,但由于坏行达到了限制,我收到了一个错误。下面是我的sqoop工作:
sqoop导出--选项文件--直接--连接jdbc:netezza用法://10.90.21.140:5480/analytics--username sat144--p--table analytics\u stage--export dir/home/dir1/analytics/data--fields以“~”结尾--input null string'\n'-input null non string'\n'-m1-最大错误数#0
我的netezza ddl如下:
创建表分析\u stage(id varchar(30),name varchar(60),dept nvarchar(99),dept \u id nvarchar(200));
我的配置单元表列值如下
第1行:20134(id)sat(名称)数据组(部门)[121103201212310](部门id)
有人能帮我吗?如果列在配置单元表中有负值和值数组,那么netezza中建议的数据类型是什么??
下面的sqoop错误日志
16/05/09 15:46:49 info mapreduce.job:map 50%reduce 0%16/05/09 15:46:55 info mapreduce.job:task id:attempt\u 146098638847\u 0849\u m\u000000\u 1,status:failed error:java.io.ioexception:org.netezza.error.nzsqlexception:error:external table:bad input rows count reached maxerrors limit
at org.apache.sqoop.mapreduce.db.netezza.NetezzaExternalTableExportMapper.run(NetezzaExternalTableExportMapper.java:255)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at 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)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
原因:org.netezza.error.nzsqlexception:错误:外部表:错误输入行数达到maxerrors限制
1条答案
按热度按时间v9tzhpje1#
导入/导出功能可从rdbms到hdfs,反之亦然。但是在使用hive、hbase和hcatalog时,我们只有一个导入选项。到目前为止,我们无法从配置单元、hbase和hcatalog导出数据。