hive - 计算 hive 1.2.1 中已删除分区的静态数据
问题描述
我有一个功能,我想从分区中删除数据。如果所有数据都被删除,那么也删除分区。以下是我们找到的步骤:
- 搜索基于日期的分区的数据。
- 从分区中删除数据
- 检查是否存在任何记录(如果存在)执行计算统计。对于列也是如此。
- 如果没有记录,则删除分区并执行计算统计。
当我们执行选择查询时,它向我显示已删除分区的错误。即使我们调用计算统计,它仍然显示分区不存在。我想念什么吗?
我们尝试通过一些代码更改来计算统计信息,但它不起作用。以下是我们遵循的步骤:
如果分区被删除,那么下面是我们接下来的两个步骤:
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
预期结果是避免此异常,因为分区不可用,但对于删除分区的选择查询,它显示此错误。
java.sql.SQLException:查询失败(#20190619_060000_00416_bztpj):分区位置不存在:hdfs://XXXX/XX/XX
解决方案
推荐阅读
- matlab - 使用一个函数作为另一个函数的输入
- git - 推送到.git但拒绝错误的用户,终于解决了
- javascript - 减小材质 ui 中扩展面板的大小
- sql-server - 存储过程在 asp.net web api 中返回错误值
- angular - angular 6 中 jquery 的 $.each 的替代品
- python - 相同的 for_loop 代码,第二次运行打印不同的结果
- kubernetes - 在需要时附加和删除 EKS 工作程序节点以提高成本效益
- java - 将对象传递给新的对象构造函数而不在内部使用它可以吗?
- c# - 自动完成组合框 vs2017 - 属性
- python - 无法使用 pip 安装 selenium