【问题标题】:in Hive SQL, create table based on columns from another table with partition key在 Hive SQL 中,基于具有分区键的另一个表中的列创建表
【发布时间】:2016-08-30 22:37:42
【问题描述】:

我想根据现有表中的列创建一个新表,在 hive 中添加一个新的分区 col。

我想在 hive sql 中实现目标。

除了下面的sql或者使用kettle之类的ETL工具,还有其他方法吗?

如果不存在则创建表 table_name(
col1,
col2,
col3,
……,
科恩
) 由 dt 分区;

其中col1到coln来自已经存在的老表,dt是新添加的分区键。

因为旧表太大,可能有数百列,列出它们会很累。

但是,下面的 sql 显示语法错误:

如果不存在 table_name 则创建表,例如由 dt 分区的 old_table_name;

所以我想知道在 hive sql 中是否有其他更好的方法来解决这个问题?谢谢。

【问题讨论】:

    标签: sql hadoop hive


    【解决方案1】:

    如果所有列和dt列都可以使用以下方式创建分区表:

    CREATE TABLE newtable (col1 int, col2 string) PARTITIONED BY (dt string) AS
    SELECT col1 , col2, dt FROM oldtable WHERE dt is not null;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2022-01-23
      • 2019-12-25
      • 2021-11-13
      • 2015-03-10
      • 2013-07-10
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多