我在 Athena 中有一个格式不正确的分区。我将年、月、日和小时分区为整数列,但错误地将分区创建为 float 。
即
/year=2019.0/month=4.0/day=22.0/hour=6.0
代替
/year=2019/month=4/day=22/hour=6
我删除了负责的 s3 文件并运行了 MSCK REPAIR TABLE
但分区没有被删除。我尝试手动删除分区 -
ALTER TABLE my_table DROP PARTITION (year=2019.0)
ALTER TABLE my_table DROP PARTITION (year='2019.0')
但是我得到了错误
FAILED: SemanticException [Error 10006]: Partition not found (year = null)
注意 year = null
。雅典娜似乎不知道如何处理小数。
如何摆脱这个错误的分区?
编辑:
我能够解决这个问题的唯一方法是重新创建表并修复它。仍在寻找另一种解决方案,因为那将是产品中的一个无赖。
最佳答案
你能不能试试用这些方法删除所有分区:
ALTER TABLE my_table DROP PARTITION (year > 0.0);
(or)
ALTER TABLE my_table DROP PARTITION (year > 0);
(或)
将 year
的 datatype
更改为 String
然后尝试删除分区
ALTER TABLE my_table DROP PARTITION (year='2019.0')
关于amazon-web-services - 无法在 Athena 中删除分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55788318/