hive快速复制一张分区表

 

一。先创建一张和old_table结构相同的new_table,包括分区;可以使用CREATE TABLE new_table LIKE old_table;

接下来使用动态分区,把old_table的数据INSERT到new_table中。

 

create table tmp.yyd_map_log like rca.yyd_map_log;

insert overwrite table tmp.yyd_map_log partition(dt) select * from rca.yyd_map_log;

 

二。

 

1. CREATE TABLE new_table LIKE old_table;

2. 使用hadoop fs -cp 命令,把old_table对应的HDFS目录的文件夹全部拷贝到new_table对应的HDFS目录下;

3. 使用MSCK REPAIR TABLE new_table;修复新表的分区元数据;

 

create table tmp.yyd_map_log like rca.yyd_map_log;

sudo -u hdfs hadoop fs -cp /user/hive/warehouse/rca.db/yyd_map_log/* /user/hive/warehouse/tmp.db/yyd_map_log/

MSCK REPAIR TABLE tmp.yyd_map_log

您可以选择一种方式赞助本站