1

我无法在配置单元表中删除分区。

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 命令后,它实际上应该删除分区。但事实并非如此。

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

4

2 回答 2

1

尝试这个:

ALTER TABLE db.table drop if exists partition(dt='****-**-**', id='**********');
于 2019-09-04T07:24:00.313 回答
1

正如@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-09-04T08:59:53.053 回答