计算hive1.2.1中已删除分区的静态

vwkv1x7d  于 2021-06-24  发布在  Hive
关注(0)|答案(0)|浏览(232)

我有一个从分区中删除数据的功能。如果删除了所有的数据,那么也删除分区。以下是我们发现的步骤:
搜索基于日期的分区数据。
从分区中删除数据
检查是否存在任何记录,如果存在则执行计算统计。也适用于列。
如果没有记录,则删除分区并执行计算统计。
当我们执行select查询时,它会显示已删除分区的错误。即使我们调用computestatistics,它仍然显示分区不存在。我错过什么了吗?
我们试图通过一些代码更改来计算统计数据,但它不起作用。以下是我们的步骤:
如果删除了分区,下面是接下来的两个步骤:

ALTER TABLE transactions DROP IF EXISTS PARTITION (eventday=" + eventDay + ")
ALTER TABLE transactions ADD IF NOT EXISTS PARTITION (eventday=" + eventDay + ")

每次执行以下步骤:

ANALYZE TABLE transactions PARTITION(eventday=" + eventDay + ") COMPUTE STATISTICS FOR COLUMNS
ANALYZE TABLE transactions PARTITION(eventday=" + eventDay + ") COMPUTE STATISTICS

预期的结果是避免这个异常,因为分区不可用,但是对于delete partition的select查询,它显示了这个错误。
java.sql.sqlexception:查询失败(#20190619_060000_00416_bztpj):分区位置不存在:hdfs://x/xx/xx

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题