Amazon web services 无法删除雅典娜中的分区
我在雅典娜有一个格式很差的分区。我将年、月、日和小时分区为整数列,但错误地将分区创建为浮动 i、 eAmazon web services 无法删除雅典娜中的分区,amazon-web-services,hive,amazon-athena,Amazon Web Services,Hive,Amazon Athena,我在雅典娜有一个格式很差的分区。我将年、月、日和小时分区为整数列,但错误地将分区创建为浮动 i、 e /年=2019.0/月=4.0/天=22.0/小时=6.0 而不是 /年=2019/月=4/天=22/小时=6 我删除了s3文件并运行了一个MSCK修复表,但分区没有被删除。我尝试使用手动删除分区- ALTER TABLE my_table DROP PARTITION (year=2019.0) ALTER TABLE my_table DROP PARTITION (year='2019.0
/年=2019.0/月=4.0/天=22.0/小时=6.0
而不是
/年=2019/月=4/天=22/小时=6
我删除了s3文件并运行了一个MSCK修复表
,但分区没有被删除。我尝试使用手动删除分区-
ALTER TABLE my_table DROP PARTITION (year=2019.0)
ALTER TABLE my_table DROP PARTITION (year='2019.0')
但是我弄错了
失败:SemanticException[错误10006]:未找到分区(年份=null)
注意year=null
。雅典娜似乎不知道如何处理小数
我如何摆脱这个有问题的分区
编辑:
我能够解决这个问题的唯一方法是重新创建表并修复它。仍在寻找另一种解决方案,因为这将是产品中的一个难题。您是否可以尝试使用以下方法删除所有分区:
ALTER TABLE my_table DROP PARTITION (year > 0.0);
(or)
ALTER TABLE my_table DROP PARTITION (year > 0);
(或)
将年份的数据类型更改为字符串
然后尝试删除分区
ALTER TABLE my_table DROP PARTITION (year='2019.0')
我添加了错误日期格式的分区,由于这些分区不是有效日期,因此无法删除。将Glue中模式中的类型更改为“string”允许我删除分区。在那之后,我可以改回最新版本。希望有关胶水的额外信息对您有所帮助,谢谢!我有一个类似的问题,但我的分区键是时间戳格式的,我不小心创建了一个带有字符串值的分区。在我的例子中,工作了ALTER TABLE my_TABLE DROP PARTITION(PARTITION_key=“”)
(错误的值是非空字符串),然后MSCK修复表my_TABLE
。看起来雅典娜不知何故解释了空字符串并删除了损坏的分区。