首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IMPALA:基于未分区表创建新分区表

IMPALA:基于未分区表创建新分区表
EN

Stack Overflow用户
提问于 2018-08-15 00:59:52
回答 1查看 3.9K关注 0票数 1

我想要基于另一个未分区表创建一个新的分区表。新表应由旧表的一列进行分区。然后,我想在新表中加载所有旧数据。

代码语言:javascript
复制
CREATE TABLE new_table PARTITIONED BY (id) STORED AS PARQUET AS SELECT * FROM old_table

与声明的这里*一样,id应该是最后一列,但它是old_table中的第一列。old_table包含很多列,所以我不想列出所有的列。我能做什么?

代码语言:javascript
复制
    *-- We expect this CTAS to fail because non-key column S
-- comes after key columns YEAR and MONTH in the select list.
create table partitions_maybe partitioned by (year, month)
  as select year, month, s from partitions_no;
ERROR: AnalysisException: Partition column name mismatch: year != month
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 12:33:23

如果您不介意在记录级别复制列信息,则可以这样做

代码语言:javascript
复制
CREATE TABLE new_table PARTITIONED BY (id_partition) STORED AS PARQUET AS SELECT *, id as id_partition FROM old_table

在黑斑羚,你将无法以不同的方式做这件事。在Hive中,您有一些选项可以选择所有列,但其他选项则使用正则表达式。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51851576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档