如何配置AWS Glue爬虫以生成多张独立表而非单张带分区表
解决AWS Glue爬虫生成单表而非独立多表的问题
我之前也碰到过完全一样的情况——Glue爬虫默认会把上层的table1/table2/table3文件夹识别成分区键,进而把所有CSV文件合并成一张data表。要生成三张独立的表,你可以按照下面这些亲测有效的配置步骤来调整:
1. 调整爬虫的数据源路径
别把爬虫的根路径设为Data/,而是直接指定每个table的output目录作为数据源:
- 在爬虫的包含路径里添加
Data/table1/output/ - 再添加
Data/table2/output/和Data/table3/output/
这样爬虫会把每个路径下的CSV文件单独识别为一张表,不会把上层文件夹当成分区。
2. 修改爬虫的分组行为(适合保留根路径的场景)
如果一定要用Data/作为爬虫的根路径,那必须调整分组规则:
- 在爬虫配置的S3数据分组行为里,选择按源路径分组(代替默认的按数据类型分组)。这个设置会强制Glue根据子路径的差异生成独立的表,而不是合并结构相似的文件。
3. 自定义CSV分类器(可选,针对特殊格式)
如果你的CSV文件有特殊的分隔符、表头规则,可能需要自定义分类器来确保Glue正确识别每个表的结构,避免因为结构相似被合并:
- 进入Glue控制台的分类器页面,新建一个CSV分类器
- 设置匹配你文件的分隔符、是否包含表头、表头字段等参数
- 在爬虫配置里关联这个自定义分类器,让它优先用于文件识别
4. 清理旧元数据(必做步骤)
在重新运行爬虫前,一定要先删除之前生成的data表和对应的分区:
- 进入Glue数据目录,找到
data表并删除 - 也可以在爬虫配置里开启运行爬虫时删除旧表选项,但要注意这个选项会删除爬虫之前生成的所有表,谨慎使用
按照上面的步骤调整后,重新启动爬虫,就能得到独立的table1、table2、table3三张表了。
内容的提问来源于stack exchange,提问作者Sakibul Alam
相关产品推荐
相关产品推荐

