【问题标题】:How to partition a unpartitioned hive table created from another table如何对从另一个表创建的未分区配置单元表进行分区
【发布时间】:2014-07-30 20:20:59
【问题描述】:

我想使用动态分区对我事先创建了架构的表进行分区。

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

那么,基本上我要实现的就是下面这个

插入覆盖表table_dest

从 table_source 中选择 col1,col2,col3

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

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

此外,在运行运行动态分区的查询时需要考虑哪些事项,因为它会生成很多中间文件?

【问题讨论】:

    标签: hive


    【解决方案1】:

    这样的东西会起作用, 仅当动态分区没有更高级别的静态分区时,才应将 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; 
    

    【讨论】:

      猜你喜欢
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多