AWS Glue 爬虫将 json 文件分类为未知

AWS Glue Crawler Classifies json file as UNKNOWN

我正在从事一项 ETL 工作,该工作会将 JSON 文件提取到 RDS 暂存 table 中。我配置的爬虫可以毫无问题地对 JSON 个文件进行分类,只要它们的大小小于 1MB。如果我缩小文件(而不是漂亮的打印),如果结果小于 1MB,它将毫无问题地对文件进行分类。

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

还有其他人 运行 关注这个问题吗?有一个更好的方法吗?

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

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

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

我遇到了和你一样的问题,爬虫分类为未知。

我能够解决它:

  • 您必须使用 json 路径作为“$[*]”创建自定义分类器,然后使用该分类器创建新的抓取工具。
  • 运行 将创建包含 S3 上的数据和适当架构的新爬虫。
  • 不要用分类器更新您当前的爬虫,因为它不会应用更改,我不知道为什么,可能是因为 AWS 在其文档中提到的分类器版本控制。创建新的爬虫使其工作

所述

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

当您 运行 爬虫使用内置 JSON 分类器时,整个文件用于定义架构。因为您没有指定 JSON 路径,所以爬虫将数据视为一个对象,即只是一个数组。

Dung在他的回答中也指出了这一点。

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