【问题标题】:Deletion of Partitions删除分区
【发布时间】:2020-01-07 00:38:44
【问题描述】:

我无法删除 hive 表中的分区。

ALTER TABLE db.table drop if exists partition(dt="****-**-**/id=**********");
OK
Time taken: 0.564 seconds

但是分区没有被删除

以下是我检查表分区时得到的结果:

hive> show partitions db.table;
OK
dt=****-**-**/id=**********
dt=****-**-**/id=**********
dt=****-**-**/id=**********
dt=****-**-**/id=**********

运行 Alter table db.table drop if exists 命令后,它实际上应该删除分区。但事实并非如此。

你能建议我吗? 提前致谢。

【问题讨论】:

    标签: hive hive-partitions hiveddl


    【解决方案1】:

    试试这个:

    ALTER TABLE db.table drop if exists partition(dt='****-**-**', id='**********');
    

    【讨论】:

      【解决方案2】:

      正如@leftjoin 也提到的,您必须用逗号分隔指定分区。

      ALTER TABLE page_view DROP if exists PARTITION (dt='****-**-**', id='**********');
      

      请注意-

      在 Hive 0.7.0 或更高版本中,如果分区没有,DROP 会返回错误 存在,除非指定了 IF EXISTS 或配置变量 hive.exec.drop.ignorenonexistent 设置为 true。

      由于这个原因,您的查询没有失败并返回 OK 响应。

      【讨论】:

        猜你喜欢
        • 2019-11-17
        • 2017-02-18
        • 2015-01-19
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 2020-10-05
        • 2015-11-13
        • 1970-01-01
        相关资源
        最近更新 更多