首页 > 解决方案 > 无法删除 Athena 中的分区

问题描述

我在 Athena 中有一个格式不正确的分区。我将年、月、日和小时分区为整数列,但错误地将分区创建为浮点数。

IE

/year=2019.0/month=4.0/day=22.0/hour=6.0

代替

/year=2019/month=4/day=22/hour=6

我删除了负责的 s3 文件并运行了 aMSCK REPAIR TABLE但未删除分区。我尝试手动删除分区 -

ALTER TABLE my_table DROP PARTITION (year=2019.0)
ALTER TABLE my_table DROP PARTITION (year='2019.0')

但我得到了错误

失败:SemanticException [错误 10006]:未找到分区(年份 = null)

注意year = null。雅典娜似乎不知道如何处理小数。

如何摆脱这个错误的分区?

编辑:

我能够解决这个问题的唯一方法是重新创建表并修复它。仍在寻找另一种解决方案,因为那将是一个无赖。

标签: amazon-web-serviceshiveamazon-athena

解决方案


您能否尝试使用这些方法删除所有分区:

ALTER TABLE my_table DROP PARTITION (year > 0.0);
(or)
ALTER TABLE my_table DROP PARTITION (year > 0);

(or)

datatype将of更改yearString 然后尝试删除分区

ALTER TABLE my_table DROP PARTITION (year='2019.0')

推荐阅读