Sqoop从Oracle导入到Hive - ERROR工具.ImportTool:导入失败:导入数据时名称为entity_idfound的列没有

时间:2017-10-23 19:36:02

标签: hadoop hive sqoop

我正在使用Sqoop import将数据从RDBMS(oracle)加载到Hive。没有--map-column-hive选项数据加载时没有任何问题,但数据类型与预期不同。 这是源代码 --map-column-hive'ae_header_id = bigint,application_id = smallint,entity_id = bigint,event_id = bigint,accounting_date = date,gl_transfer_date = timestamp'\

源表和目标表具有相同的列名。

Sqoop版本1.4.6和Hive 2.1

2 个答案:

答案 0 :(得分:0)

我改变了下面的脚本并且工作正常。

--query  'SELECT AE_HEADER_ID  ,
   APPLICATION_ID  ,
   ENTITY_ID  ,
   EVENT_ID  ,
   EVENT_TYPE_CODE  ,
   ACCOUNTING_DATE ,
   GL_TRANSFER_STATUS_CODE  ,
   GL_TRANSFER_DATE 
    FROM  XXCFI_XLA_AE_HEAD_TEST where $CONDITIONS' --split-by ae_header_id --m 1 \
--hive-import \
--hive-database xxcfi \
--hive-table XXCFI_XLA_AE_HEAD_PQ \
--map-column-hive AE_HEADER_ID=BIGINT,APPLICATION_ID=SMALLINT,ENTITY_ID=BIGINT,EVENT_ID=BIGINT,ACCOUNTING_DATE=TIMESTAMP,GL_TRANSFER_DATE=TIMESTAMP \

答案 1 :(得分:0)

在Sqoop认为它们区分大小写的同时,检查“源”侧的列名称,并相应地更改其名称。