删除分区
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 响应。
我无法在配置单元中删除分区 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 响应。