问题描述
我使用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
传递这些选项,所以我采用了快捷方式,即使用另一个没有加密的工作组来重新创建表。