You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delta表列类型修改后Athena查询类型不兼容报错排查

问题根源

你忽略了同步更新Glue Data Catalog中的表元数据这一步骤。

虽然你已经更新了Delta Lake的schema并重新生成了symlink manifest,且底层Parquet文件的column1类型已改为string,但Athena查询依赖的是Glue表的定义——你手动创建的Glue表中column1仍为double类型。当Athena用旧的double类型去解析Parquet中存储为BINARY类型的string数据时,就会触发类型不兼容的错误。

解决步骤

需要手动更新Glue表的schema,将column1的类型从double修改为string,以下是用boto3实现的代码示例:

glue_clt = boto3.client("glue", region_name="us-east-1")
glue_clt.update_table(
    DatabaseName="database_name",
    TableInput={
        "Name": "table_name",
        "StorageDescriptor": {
            "Columns": [{"Name": "column1", "Type": "string"}, {"Name": "column2", "Type": "string"}],
            "Location": "s3://path_to_table/_symlink_format_manifest",
            "InputFormat": "org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat",
            "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
            "SerdeInfo": {
                "SerializationLibrary": "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
            }
        },
        "PartitionKeys": [{"Name": "column3", "Type": "string"}, {"Name": "column4", "Type": "string"}],
        "TableType": "EXTERNAL_TABLE"
    }
)

更新完成后,重新运行Athena查询即可正常解析数据。

内容的提问来源于stack exchange,提问作者nojohnny101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:55:25