1

HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分 s3://exp-mahesh-sandbox/Demo/Year=2017/Month=1/Day=3/part-00015-d0e1263a-616e-435f-b4f4-9154afb3f07d.c000.snappy.parquet 时出错(偏移量 = 0,长度 = 12795):架构不匹配,行列统计的元存储架构有 17 个字段,但镶木地板架构有 9 个字段

我使用 AWS Glue 爬虫来获取 Parquet 文件的架构。最初我在分区 Day=1 和 Day=2 中有几个文件,运行爬虫并能够使用 Athena 查询它。在分区 Day=3 中添加更多文件后,其中具有“统计”(类型:结构)列的文件架构有一些缺失字段,Athena 抛出上述错误。有什么办法可以解决这个问题。我期望缺少的字段中有空值。

我已经尝试过在爬虫的数据目录选项中更新表定义,但它给出了相同的结果。

爬虫设置

4

1 回答 1

2

您收到该错误是因为您的 Parquet 文件中至少有一个架构与构成表的其他文件或表的定义本身不同;它似乎是您的“Day=3”分区。

这是 Athena 的一个限制,它要求作为表的数据源的文件具有相同的架构,即所有文件的列都需要匹配 Athena 的表定义,甚至是结构成员。

尽管 Glue 爬虫成功运行,但仍会发生此错误;表定义确实由爬虫更新,但是当您执行涉及具有不同架构的文件(例如缺少列)的查询时,您会收到 HIVE_CANNOT_OPEN_SPLIT 错误。

于 2020-02-14T13:06:27.163 回答