AWS Glue Crawler将json文件归类为UNKNOWN

问题描述 投票:5回答:2

我正在开发一个ETL作业,它将JSON文件摄取到RDS登台表中。我配置的爬虫只要它们的大小不超过1MB就可以对JSON文件进行分类。如果我缩小文件(而不是漂亮的打印),如果结果低于1MB,它将对文件进行分类而不会出现问题。

我无法想出一个解决方法。我尝试将JSON转换为BSON或GZIPing JSON文件,但它仍然被归类为UNKNOWN。

还有其他人遇到过这个问题吗?有一个更好的方法吗?

json amazon-web-services pyspark aws-glue
2个回答
1
投票

我有两个json文件,分别是42mb和16mb,在S3上作为路径分区:

  • S3://bucket/stg/year/month/_0.json
  • S3://bucket/stg/year/month/_1.json

我和你有同样的问题,爬虫分类为UNKNOWN。

我能够解决它:

  • 您必须使用jsonPath创建自定义分类器为“$ [*]”,然后使用分类器创建新的爬网程序。
  • 使用S3上的数据运行新的爬网程序,将创建正确的模式。
  • 不要使用分类器更新当前的爬虫,因为它不会应用更改,我不知道为什么,可能是因为他们的文档中提到的分类器版本控制AWS。创建新的爬虫使它们工作

0
投票

如上所述

https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json

使用内置JSON分类器运行爬网程序时,整个文件用于定义模式。由于您未指定JSON路径,因此爬网程序将数据视为一个对象,即只是一个数组。

这也是阮在答案中指出的。

© www.soinside.com 2019 - 2024. All rights reserved.