我正在尝试创建一个与另一个表(已分区)具有相同列的配置单元表。我对同一个
使用以下查询CREATE TABLE destTable STORED AS PARQUET AS select * from srcTable where 1=2;
显然我不能使用' PARTITIONED BY(col_name)'因为不能对destTable进行分区。但是我想提一下,在我向其添加数据之前,destTable应该被一个列(与srcTable相同)进行分区。
有办法吗?
答案 0 :(得分:0)
正如您所提到的,destTable不能是分区表,因此无法直接执行此操作。此外,destTable不能是外部表。
在这种情况下,您需要创建一个临时的" staging_table" (未分区和Hive管理的表)来保存数据。
步骤1:将所有内容从srcTable传输到staging_table
步骤2:创建分区的destTable并执行:
INSERT OVERWRITE TABLE destTable PARTITION(xxxx)
SELECT * FROM staging_table;
希望这有帮助。