Amazon web services AWS Glue Crawlers-如何处理可能只包含字符串的大型CSV目录结构
我们已经在这里呆了几天,非常感谢您的帮助 背景: 我正在尝试创建1+粘合爬虫来爬网以下S3“目录”结构:Amazon web services AWS Glue Crawlers-如何处理可能只包含字符串的大型CSV目录结构,amazon-web-services,aws-glue,aws-glue-data-catalog,Amazon Web Services,Aws Glue,Aws Glue Data Catalog,我们已经在这里呆了几天,非常感谢您的帮助 背景: 我正在尝试创建1+粘合爬虫来爬网以下S3“目录”结构: . +-- _source1 | +-- _item1 | | +-- _2019 #year | | | +-- _08 #month | | | | +-- _30 #day | | | | | +-- FILE1.csv #files | | | | | +-- FILE2.csv | |
.
+-- _source1
| +-- _item1
| | +-- _2019 #year
| | | +-- _08 #month
| | | | +-- _30 #day
| | | | | +-- FILE1.csv #files
| | | | | +-- FILE2.csv
| | | | +-- _31
| | | | | +-- FILE1.csv
| | | | | +-- FILE2.csv
| | | +-- _09
| | | | +-- _01
| | | | +-- _02
| +-- _item2
| | +-- _2019
| | | +-- _08
| | | | +-- _30
| | | | +-- _31
| | | +-- _09
| | | | +-- _01
| | | | +-- _02
+-- _source2
| +-- ....
........ # and so on...
这适用于多个源,每个源可能有30多个项目,其中每个都有年/月/日目录结构
所有文件都是CSV,文件一旦在S3中就不应该更改。但是,每个项目文件夹中文件的架构将来可能会添加列
- 与2019/09/01/FILE.csv相比,
可能有更多的列2019/12/01/FILE.csv
我所做的: 到目前为止,在我的测试中,在
源
级目录(见上文)创建的爬虫程序工作得非常好,只要没有CSV只包含字符串类型的列这是由于以下限制: 标题行必须与数据行完全不同。要确定这一点,必须将一行或多行解析为字符串类型以外的其他行。如果所有列都是字符串类型,则第一行数据与后续行之间的差异不足以用作标题 通常,我认为您可以通过创建一个需要特定CSV模式的自定义分类器来解决这个问题,但鉴于我可能需要爬网200多个项目(不同的模式),我希望避免这种情况
建议的解决方案:
再次感谢您的帮助 发现了问题:为了使更新的glue crawler分类器生效,必须创建一个新的爬虫并应用更新的分类器。据我所知,AWS文档中没有明确提到这一点,我只看到有人提到它 在测试的早期,我修改了一个指定“Has Columns”的现有csv分类器,但从未创建一个新的爬虫程序来应用修改后的分类器。一旦我创建了一个新的爬虫程序并应用了分类器,所有的数据目录表都按照预期创建,而不管列类型如何 TL;DR:修改的分类器将不会生效,除非它们应用于新的爬虫程序