动态分区+在HIVE上创建AS

 从了良后 发布于 2023-01-30 10:56

我正在尝试使用另一个表创建一个新表,CREATE AS并在HiveCLI上进行动态分区.我正在从Hive官方维基中学习,其中有这样的例子:

 CREATE TABLE T (key int, value string) 
 PARTITIONED BY (ds string, hr int) AS
 SELECT key, value, ds, hr+1 hr1 
   FROM srcpart 
   WHERE ds is not null 
   And hr>10;

但是我收到了这个错误:

FAILED:SemanticException [错误10065]:

CREATE TABLE AS SELECT命令无法指定目标表的列列表

资料来源:https://cwiki.apache.org/confluence/display/Hive/DynamicPartitions#DynamicPartitions-Syntax

1 个回答
  • 由于您已经知道目标表的完整模式,因此请先尝试创建它并使用LOAD DATA命令填充它:

    SET hive.exec.dynamic.partition.mode=nonstrict;
    
    CREATE TABLE T (key int, value string) 
    PARTITIONED BY (ds string, hr int);
    
    INSERT OVERWRITE TABLE T PARTITION(ds, hr) 
    SELECT key, value, ds, hr+1 AS hr 
       FROM srcpart 
       WHERE ds is not null 
       And hr>10;
    

    注意:由于您正在执行完整的动态分区插入,因此需要set命令.

    2023-01-30 10:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有