Hive 'create table like' 不包括分区列

Posted

技术标签:

【中文标题】Hive \'create table like\' 不包括分区列【英文标题】:Hive 'create table like' without including partition columnsHive 'create table like' 不包括分区列 【发布时间】:2016-06-13 23:19:18 【问题描述】:

假设我这样创建 tbl1:

create table tbl1 (
    col_a STRING,
    col_b STRING,
    col_c STRING )
partitioned by (col_d STRING);

是否有创建 tbl2 的速记方法 - 与 tbl1 具有相同列的表,但没有任何分区(并且不包括分区列)。 tbl2 手动 ddl 将是:

create table tbl2 (
    col_a STRING,
    col_b STRING,
    col_c STRING );

感谢您的帮助!

【问题讨论】:

使用 describe tableName 命令;编辑输出:剪切分区信息 【参考方案1】:

您可以在 hive 中使用 CTAS(Create table as Select)。

create table tbl2 as select * from tbl1

即使 tbl1 拥有分区,这也不会在 tbl2 中创建任何分区。唯一的限制是如果没有选择,您将无法创建结构。

【讨论】:

【参考方案2】:

分区列也是表中的列之一。 如果您只需要 3 列(col_a、col_b、col_c),则需要在 Avinash 回答的查询中明确提及它们。

create table tbl2 as select col_a, col_b, col_c from tbl1;

【讨论】:

以上是关于Hive 'create table like' 不包括分区列的主要内容,如果未能解决你的问题,请参考以下文章

create table as 和create table like的区别

MySQL create table as与create table like对比

MySQL create table as与create table like对比

CREATE TABLE...LIKE 不保留 Redshift 中的主键

MySQL中表复制:create table like 与 create table as select

使用 --create-hive-table 直接在 hive 中导入 mysql 表 (sqoop)