我已将数据从Redshift以Parquet格式上传到S3,并在Glue中创建了数据目录。我已经能够从Athena查询表,但是当我在Redshift上创建外部模式并尝试在表上查询时,出现以下错误
ERROR: S3 Query Exception (Fetch)
DETAIL:
-----------------------------------------------
error: S3 Query Exception (Fetch)
code: 15001
context: Task failed due to an internal error. File 'https://s3-eu-west-1.amazonaws.com/bucket/folder/partition_key/filename.parquet_1 has an incompatible Parquet schema for column 's3://bucket/folder
query: 560922
location: dory_util.cpp:717
process: query1_118_560922 [pid=32409]
-----------------------------------------------
查询在雅典娜上很好
答案 0 :(得分:1)
这可以告诉您什么地方不对-表/分区的模式与文件内容的差异太大。最简单的解决方法是在数据位置上运行搜寻器,并选中“更新表中的每个分区定义”。
答案 1 :(得分:0)
我以前也遇到过这个问题。雅典娜似乎对文件模式的检查不如Redshift严格。
每个单个镶木地板文件中都有一个架构定义。如果文件中的架构定义与表定义不匹配或与其他一个或多个其他文件不同,则如果受影响的列不在查询中,则Redshift查询将失败,而Athena查询可能会成功。