2017-11-17 48 views
0

因此,我正在尝试的是使用AWS Glue对S3存储桶中的数据进行爬网。存储为嵌套的JSON和路径数据是这样的:基于文件名的AWS Glue自定义爬虫程序

s3://my-bucket/some_id/some_subfolder/datetime.json 

当运行默认的抓取工具(没有自定义分类),它基于路径划分,并如预期反序列化JSON,不过,我想摆脱时间戳文件名称以及单独的字段中。目前Crawler忽略它。

例如,如果我上运行履带:

s3://my-bucket/10001/fromage/2017-10-10.json 

我拿到表的模式是这样的:

  • 分区1:10001
  • 分区2:清爽
  • 阵列:JSON数据

我尝试过基础上添加神交模式自定义分类:

%{INT:id}/%{WORD:source}/%{TIMESTAMP_ISO8601:timestamp} 

enter image description here

但是,每当我重新运行履带它将跳过自定义分类,并使用默认的JSON之一。作为解决方案很明显,我可以追加文件名称到JSON本身运行的履带式之前,但不知道是否我能避免这一步呢?

回答

0

分类器只分析文件中的数据,而不是文件名本身。你想做什么是不可能的今天。如果您可以更改文件降落的路径,您可以添加日期作为另一个分区:他们添加基于相对路径分区

s3://my-bucket/id=10001/source=fromage/timestamp=2017-10-10/data-file-2017-10-10.json 
+0

量词不仅分析数据。因此,只是希望将有可能对其进行检索而不是做通过自定义地图这个任务减少 – madbitloman

+0

我找不到任何参考提示爬虫应用分类器中发现的文件的相对路径。该AWS文档表明,爬行(未分类)分区基于文件的前缀的数据。 – hoaxz

+0

幻灯片23从这里https://www.slideshare.net/AmazonWebServices/bda311-introduction-to-aws-glue – madbitloman