我试图运行sqoop导出以将Hive表行加载到Netezza表中。问题是我有几列包含值数组,我在Netezza中为那些列数据类型创建了DDL作为varchar(200)并运行sqoop作业,但由于坏行达到限制,我收到错误。 下面是我的Sqoop工作:
sqoop export --options-file --direct --connect jdbc:netezza://10.90.21.140:5480 / analytics --username sat144 --P --table analytics_stage --export-dir / home / dir1 / analytics / data --fields-terminated-by '〜' - input-null-string'\ N' - input-null-non-string'\ N'-m 1 -max-errors#0
我的Netezza DDL如下:
CREATE TABLE analytics_stage
(
id varchar(30),
name varchar(60),
dept nvarchar(99),
dept_id nvarchar(200));
我的Hive表列值低于
Row1:20134(id)sat(name)Data_Group(dept)[121,103,201,212,310](dept_id)
任何人都能帮助我吗?如果列具有负值和Hive表中的值数组,那么Netezza中的建议数据类型是什么?
16/05/09 15:46:49 INFO mapreduce.Job:地图50%减少0% 16/05/09 15:46:55 INFO mapreduce.Job:任务ID:attempt_1460986388847_0849_m_000000_1,状态:未通过 错误:java.io.IOException:org.netezza.error.NzSQLException:错误:外部表:错误输入行的计数达到maxerrors限制
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 limit
答案 0 :(得分:-1)
从RDBMS到HDFS可以获得导入/导出功能,反之亦然。但在使用Hive,HBase,Hcatalog时,我们只有一个导入选项。到目前为止,我们无法从Hive,Hbase和HCatalog导出数据。