配置单元\u无法\u打开\u拆分:打开配置单元拆分s3://exp mahesh sandbox/demo/year=2017/month=1/day=3/part-00015-d0e1263a-616e-435f-b4f4-9154afb3f07d.c000.snappy.parquet(offset=0,length=12795)时出错:架构不匹配,行-列统计的元存储架构有17个字段,但parquet架构有9个字段
我已经使用aws胶水爬虫得到Parquet文件的模式。最初我在分区day=1和day=2中只有很少的文件,运行crawler并能够使用athena查询它。在分区中再添加几个文件后day=3,其中文件的模式为“statistical”(type:struct)列中缺少一些字段,雅典娜抛出上述错误。有没有办法解决这个问题。缺少的字段应为空值。
我曾尝试在爬虫程序的data catalog选项中更新表定义,但结果相同。
爬网程序设置
1条答案
按热度按时间k7fdbhmy1#
得到这个错误是因为至少有一个parquet文件的模式与组成表的其他文件或表的定义本身不同;它似乎是您的“day=3”分区。
这是athena中的一个限制,要求作为表的数据源的文件具有相同的模式,即所有文件的列都需要匹配athena的表定义,甚至是结构成员。
尽管胶水爬虫运行成功,但仍会发生此错误;表定义确实是由爬虫更新的,但是当您执行一个查询,该查询涉及一个具有不同模式的文件(例如缺少一列)时,您会得到一个hive\u cannot\u open\u split错误。