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

f0ofjuux  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(430)

当我试图插入到分区表中时,我得到以下错误semanticexception[error 10044]:行1:23无法插入到目标表中,因为列号/类型不同“us”:表insclause-0有2列,但query有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[error 10044]:行1:23无法插入到目标表中,因为列号/类型不同“us”:表insclause-0有2列,但查询有3列。

py49o6xq

py49o6xq1#

非常感谢萨姆森·沙尔夫里希特

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>

相关问题