首页 > 解决方案 > AWS Glue Crawler 无法解析大文件(分类 UNKNOWN)

问题描述

我一直在尝试使用 AWS Glue 的爬虫来尝试获取某个 json 文件的列和其他功能。

我通过将 json 文件转换为 UTF-8 并使用 boto3 将其移动到 s3 容器中并从爬虫访问该容器来在本地解析 json 文件。

我使用自定义分类器 $[*] 创建了一个 json 分类器,并创建了一个具有正常设置的爬虫。

当我使用相对较小(<50 Kb)的文件执行此操作时,爬虫会正确识别列以及主 json 中内部 json 层的内部架构。但是,我正在尝试处理的文件(大约 1 Gb),爬虫具有“未知”作为分类并且无法识别任何列,因此我无法查询它。

关于这个问题的任何想法或某种解决方法?

我最终试图将其转换为 Parquet 格式并使用 Athena 进行一些查询。

我看过下面的帖子,但这个解决方案不起作用。我已经尝试过重写我的分类器和爬虫。我还认为这些不是核心问题,因为我使用 $[*] 作为我的自定义分类器并使用了几乎相同的设置,同时尝试使用具有相同结果的较小文件执行此操作。

我开始认为原因仅仅是因为文件很大。

标签: jsonamazon-web-servicesamazon-s3aws-glueamazon-athena

解决方案


我可能错了,但是可以处理的文件大小有某种限制。尝试将您的大文件拆分为 10Mb(建议大小)的文件。Crawler 将并行处理这些文件,当您再次运行它时,它只会处理更改/新文件。抱歉,我找不到相关的 aws 文档,请尝试一下,看看它是否有效


推荐阅读