如何对从另一个表创建的未分区的配置单元表进行分区

时间:2014-07-30 20:20:59

标签: hive

我想使用动态分区来对我已经创建了架构的表进行分区。

我想要的分区键是源表中的一列。

所以,基本上我想实现的是以下

插入覆盖表table_dest

从table_source

中选择col1,col2,col3

我想在这里使用的分区键是col3。

另外,我可以在运行动态分区查询时更改分区列名吗?

此外,在运行动态分区的查询时要考虑的任何事情,因为它会生成许多中间文件?

1 个答案:

答案 0 :(得分:2)

这样的事情会起作用, 只有在动态分区的更高级别没有静态分区时,dynamic.partition.mode才应设置为非严格模式。

此处,分区列应该是选择列表中的最后一列。因此,选择列表将是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; 
相关问题