我想基于现有表中的列创建一个新表,在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中有没有其他更好的方法来解决这个问题?谢谢。
答案 0 :(得分: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;