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

Pandas时长列转Parquet后Athena查询报错,求列类型适配方案

解决Athena读取Parquet中TIME(MICROS,true)类型列的类型匹配问题

Athena中对应你这个Parquet列的正确数据类型是time类型,因为Parquet里的TIME(MICROS,true)逻辑类型就是用来存储纯一天内时间的数值,和Athena的time类型完全匹配。

为什么之前的类型会失败

  • 设为timestamp报错:timestamp是带日期维度的时间类型,和Parquet里仅存储一天内时间的TIME逻辑类型不兼容,所以触发类型不支持的错误。
  • 设为string或int无效:Athena会优先识别Parquet文件中的逻辑类型元数据,强制用基础类型(字符串/整数)映射会和文件里的类型定义冲突,导致解析失败。

正确的建表示例

CREATE EXTERNAL TABLE your_table_name (
  dep_time time
)
STORED AS PARQUET
LOCATION 's3://your-bucket/your-path/';

额外优化建议

如果用fastparquet导出的Parquet文件在Athena中仍有类型解析问题,可以尝试换用pyarrow引擎导出,它的Parquet类型映射对Athena兼容性更好:

df.to_parquet('output.parquet', engine='pyarrow')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:00