我正在使用AWS Glue爬网程序对大约170 GB的Avro数据进行爬网,以创建数据目录表。
avro数据中有几个不同的架构版本,但是搜寻器仍然设法将数据合并到一个表中(我已启用“分组依据数据兼容性和架构相似性-模式”)。
这是当事情变得有问题的时候。
我只能使用Athena对数据运行SELECT COUNT(*) FROM <DB>.<TABLE>
查询-其他任何查询都会引发以下错误:
GENERIC_INTERNAL_ERROR: Unknown object inspector category: UNION
简短的Google检查使我相信,这与avro文件中的架构有关。
通常,这是我将精力集中在哪里,但是:之前,我已经能够执行此完全相同的过程(AVRO->搜寻器->胶水作业-> PARQUET),并且具有较小的Avro数据集(50GB)同样的问题(只能运行计数查询)。继续前进。
之前的转换工作大约花费了一个小时。现在,在170 GB数据上运行相同的作业时,该作业在一分钟之内完成,因为glueContext.create_dynamic_frame.from_catalog
现在返回一个空帧-没有错误,没有任何错误。之所以如此,是因为我能够在作业使用的同一张表上的Athena中运行COUNT查询,并返回520M个对象。
有人知道可能是什么问题吗?
可能与之相关的几件事:
recordCount
表示有170M条记录。答案 0 :(得分:1)
我们有同样的问题,可以通过以下方法解决。
在我们的Avro模式中,有一条记录具有混合字段类型,即某些记录的类型为"type" : [ "null", "string" ]
,其他记录的类型为[ "null", "string" ]
。
将其手动更改为iOS13
到处都可以,我们可以在雅典娜使用该表而没有任何问题。