插入Hive表 - 非分区表到分区表 - 无法插入目标表,因为列号/类型

时间:2016-03-05 09:36:39

标签: hadoop hive

当我尝试插入Partiotioned表时,我收到了波纹管错误 SemanticException [错误10044]:第1:23行无法插入目标表,因为列号/类型不同''美国':表insclause-0有2列,但查询已有3栏。

我的输入数据

1,aaa,US
2,bbb,US
3,ccc,IN
4,ddd,US
5,eee,IN
6,fff,IN
7,ggg,US

创建的配置表tx

create table tx (no int,name string,country string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

创建的分区表t1 按国家/地区划分

create table t1 (no int,name string) PARTITIONED BY (country string)  ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

我尝试了两个插入,但失败了

    INSERT OVERWRITE TABLE t1 PARTITION (country='US') 
SELECT *   from tx where country = 'US';

    INSERT OVERWRITE TABLE t1 PARTITION (country='US') 
SELECT no,name,country from tx where country = 'US';

错误 :SemanticException [错误10044]:第1:23行无法插入目标表,因为列号/类型不同''美国'& #39;:表insclause-0有2列,但查询有3列。

1 个答案:

答案 0 :(得分:4)

非常感谢Samson Scharfrichter

    INSERT OVERWRITE TABLE t1 PARTITION (country='US') 
SELECT no,name  from tx where country = 'US';
    INSERT INTO TABLE t1 PARTITION (country='IN') 
SELECT no,name  from tx where country = 'IN';

我查看了分区

hive>  SHOW PARTITIONS t1;
OK
country=IN
country=US
Time taken: 0.291 seconds, Fetched: 2 row(s)
hive>