从雅典娜查询实木复合地板数据时,出现架构不匹配错误。
错误是:
HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split s3://datalake/googleanalytics/version=0/eventDate=2017-06-11/part-00001-9c9312f7-f9a5-47c3-987e-9348b78aaebc-c000.snappy.parquet (offset=0, length=48653579): Schema mismatch, metastore schema for row column totals has 13 fields but parquet schema has 12 fields
在AWS Glue爬网程序中,我尝试启用使用表中的元数据更新所有新分区和现有分区,我认为这可以解决此问题,但是仍然出现上述错误。 我这样做是因为类似的问题: How to create AWS Glue table where partitions have different columns? ('HIVE_PARTITION_SCHEMA_MISMATCH')
totals列的表模式为:
struct<visits:bigint,hits:bigint,pageviews:bigint,timeOnSite:bigint,bounces:bigint,transactions:bigint,transactionRevenue:bigint,newVisits:bigint,screenviews:bigint,uniqueScreenviews:bigint,timeOnScreen:bigint,totalTransactionRevenue:bigint,sessionQualityDim:bigint>
分区 eventDate = 2017-06-11 的实木复合地板文件缺少最后一个字段“ sessionQualityDim” 。
答案 0 :(得分:0)
您的镶木地板文件具有两个不同的架构,而Athena表架构与较新的架构相匹配。您可以执行以下操作之一:
1)在雅典娜中创建两个不同的表,一个指向2017年之前的数据,另一个指向2017年之后的数据。
2)如果较旧的数据在当前用例中不再有效,那么您可以简单地存档该数据,并从当前表中删除2017年及以前的分区。