我想使用动态分区来对我已经创建了架构的表进行分区。
我想要的分区键是源表中的一列。
所以,基本上我想实现的是以下
插入覆盖表table_dest
从table_source
中选择col1,col2,col3我想在这里使用的分区键是col3。
另外,我可以在运行动态分区查询时更改分区列名吗?
此外,在运行动态分区的查询时要考虑的任何事情,因为它会生成许多中间文件?
答案 0 :(得分:2)
此处,分区列应该是选择列表中的最后一列。因此,选择列表将是n + 1列,目标表将具有n列。
SET hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.dynamic.partition = true;
INSERT OVERWRITE TABLE table_dest
partition(col3)
Select
col1
,col2
,col3
from source;