AWS ATHENA:HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错,查询 Parquet 文



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 抛出上述错误。 有没有办法解决这个问题。我期望缺少的字段中为空值。

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

爬网程序设置

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

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

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

最新更新