所以我想做的是使用 AWS Glue 抓取 S3 存储桶上的数据。存储为嵌套 json 和路径的数据如下所示:
s3://my-bucket/some_id/some_subfolder/datetime.json
当运行默认爬虫(无自定义分类器)时,它会根据路径对其进行分区并按预期反序列化 json,但是,我想从文件名中获取时间戳以及在单独的字段中。目前,Crawler 忽略了它。
例如,如果我在以下位置运行爬虫:
s3://my-bucket/10001/fromage/2017-10-10.json
我得到这样的表模式:
- 分区 1:10001
- 分区 2: fromage
- 数组:JSON 数据
我确实尝试添加基于 Grok 模式的自定义分类器:
%{INT:id}/%{WORD:source}/%{TIMESTAMP_ISO8601:timestamp}
但是,每当我重新运行爬虫时,它都会跳过自定义分类器并使用默认的 JSON 分类器。作为一种解决方案,显然我可以在运行爬虫之前将文件名附加到 JSON 本身,但想知道我是否可以避免这一步?