如何将Athena创建的Parquet表读入python

问题描述

我使用Athena CTAS语句创建了一个表。 Per Glue,我看到该表存储在我的s3存储桶中。我进一步确认s3存储桶中的预期位置中有文件。

这些文件不是实木复合地板文件(它们是无扩展名的文件)。当我尝试使用pd.read_parquet将它们读入python时,出现错误“在页脚中找不到Parquet魔术字节。该文件已损坏或这不是Parquet文件。”。当我尝试查询表并使用pd.read_csv读取csv输出时,会发生类似的错误。那里的错误是“'utf-8'编解码器无法解码位置0的字节0xee:无效的继续字节”。我尝试使用awswrangler并遇到相同的错误。

我非常确定这些错误与我在存储桶中进行的SSE_S3加密有关。但是,我对如何在Athena之外与这些文件进行实际交互一无所知。

解决方法

解决方案是默认的Athena工作组已打开CSE_KMS加密。我无法快速弄清楚如何通过awswrangler传递这些选项,所以我采用了快捷方式,即使用另一个没有加密的工作组来重新创建表。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...