删除分区

Deletion of Partitions

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

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

但是分区没有被删除

下面是我检查 table 的分区时得到的结果:

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

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

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

试试这个:

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

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

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

请注意-

In Hive 0.7.0 or later, DROP returns an error if the partition doesn't exist, unless IF EXISTS is specified or the configuration variable hive.exec.drop.ignorenonexistent is set to true.

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