AWS Glue Crawler 将 json 文件分类为“未知”



我正在处理一个 ETL 作业,该作业会将 JSON 文件摄取到 RDS 临时表中。我配置的爬网程序可以毫无问题地对 JSON 文件进行分类,只要它们的大小小于 1MB。如果我缩小一个文件(而不是漂亮的打印),如果结果小于 1MB,它将毫无问题地对文件进行分类。

我在想出解决方法时遇到问题。我尝试将 JSON 转换为 BSON 或 GZIP 压缩 JSON 文件,但它仍然被归类为未知。

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

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

  • s3://bucket/stg/year/month/_0.json

  • s3://bucket/stg/year/month/_1.json

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

我能够解决它:

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

如中所述

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

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

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

另请注意,文件编码可能导致 JSON 被归类为未知。请尝试将文件重新编码为 UTF-8。

相关内容

  • 没有找到相关文章

最新更新