2017-11-17 168 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