【问题标题】:Hive- how do I "create table as select.." with partitions from original table?Hive-如何使用原始表中的分区“将表创建为 select..”?
【发布时间】:2019-09-23 19:47:29
【问题描述】:

我需要从我们的 hive dlk 创建一个“工作表”。虽然我可以使用:

create table my_table as
select *
from dlk.big_table

很好,我在从原始“big_table”中继承分区(属性daymonthyear)或从这些属性创建新分区时遇到问题。 搜索网络并没有真正帮助我回答这个问题 - 所有“教程”或解决方案都处理 create as select 或创建分区,从不两者兼而有之。 有人可以帮忙吗?

【问题讨论】:

    标签: sql hadoop hive hiveql create-table


    【解决方案1】:

    不支持将分区表创建为 select。您可以分两步完成:

    1. create table my_table like dlk.big_table; 这将创建具有相同架构的表。

    2. 加载数据。

      set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict;

      insert overwrite table my_table partition (day, month, year) select * from dlk.big_table;

    【讨论】:

    • 完美运行,谢谢。顺便说一句,如果我只想从“big_table”中选择一些列并添加一些新列作为正则表达式提取,我可以在一个命令中完成,还是只使用“alter add”更实用, “插入覆盖”和“删除”命令?
    • @MageInTraining 然后创建包含必要列create table (column list) 的表并使用计算的插入选择列。也许我不完全明白你在问什么。最好将此作为问题提出并提供详细说明,其他人可能会提供帮助。
    • 我会先尝试解决这个问题。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多