如何解决配置单元将数据从一个分区复制到另一个分区
我有一个按日期分区的配置单元表。我有日期“ 2020-08-18”的数据。我想将相同的数据复制(复制)到另一个分区。
是否有这样的命令
SELECT * FROM table_a WHERE date = "2020-08-18" INTO table_a WHERE date = "2020-08-10"
解决方法
以下查询可能对您有所帮助
INSERT OVERWRITE TABLE table_a PARTITION (odate="2020-08-18")
select empdate,empvalue from table_a where odate='2020-08-10';
注意:不要在select语句中包括partition列。
create table if not exists table_a (empdate string,empvalue string) PARTITIONED BY
(odate string) row format delimited fields terminated by ',' stored as textfile;
INSERT OVERWRITE TABLE table_a PARTITION (odate="2020-08-10")
values ('101001','A'),('200101','B'),('100619','C'),('110707','D');
hive> select * from table_a;
OK
101001 A 2020-08-10
200101 B 2020-08-10
100619 C 2020-08-10
110707 D 2020-08-10
-- dont include the odate column in the select statement otherwise it will lead
-- to Cannot insert into target table because column number/types are different
-- '"2020-08-18"': Table insclause-0 has 2 columns,but query has 3 columns error.
INSERT OVERWRITE TABLE table_a PARTITION (odate="2020-08-18")
select empdate,empvalue from table_a where odate='2020-08-10';
hive> select * from table_a;
OK
101001 A 2020-08-10
200101 B 2020-08-10
100619 C 2020-08-10
110707 D 2020-08-10
101001 A 2020-08-18
200101 B 2020-08-18
100619 C 2020-08-18
110707 D 2020-08-18
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。