AWS Glue Crawler将json文件归类为UNKNOWN

时间:2017-10-25 15:43:24

标签: json amazon-web-services pyspark aws-glue

我正在处理将JSON文件导入RDS登台表的ETL作业。我已配置的爬网程序只要它们的大小不超过1MB就可以对JSON文件进行分类。如果我缩小文件(而不是漂亮的打印),如果结果低于1MB,它将对文件进行分类而不会出现问题。

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

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

3 个答案:

答案 0 :(得分:0)

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

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

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

我遇到了与您相同的问题,爬网程序分类为UNKNOWN。

我能够解决它:

  • 您必须使用JSONPath作为“ $ [*]”创建自定义分类器,然后使用该分类器创建新的搜寻器。
  • 使用S3上的数据运行新的搜寻器,将创建正确的架构。
  • 请勿使用分类器更新当前的搜寻器,因为它不会应用更改,我不知道为什么,也许是因为他们的文档中提到了分类器版本化AWS。创建新的搜寻器以使其正常工作

答案 1 :(得分:0)

中所述

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

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

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

答案 2 :(得分:0)

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