Amazon web services 如何影响AWS Glue Crawler来创建所需的表结构?
我的S3文件夹结构如下:Amazon web services 如何影响AWS Glue Crawler来创建所需的表结构?,amazon-web-services,csv,amazon-s3,boto3,aws-glue,Amazon Web Services,Csv,Amazon S3,Boto3,Aws Glue,我的S3文件夹结构如下: s3://bucket_name/FirstDate s3://bucket_name/SecondDate 在这两个文件夹中,我有100多个CSV。 这些CSV的命名不同,但通常共享相似的模式 当我创建一个glue crawler并将include路径设置为s3://bucket\u name时,它将生成一个表,其中包含所有CSV中的所有列和两个最新分区 我希望每个CSV都是它自己的表。 因此,我编写了一个python脚本来枚举bucket内容,对于每个CSV文件,
s3://bucket_name/FirstDate
s3://bucket_name/SecondDate
在这两个文件夹中,我有100多个CSV。
这些CSV的命名不同,但通常共享相似的模式
当我创建一个glue crawler并将include路径设置为s3://bucket\u name
时,它将生成一个表,其中包含所有CSV中的所有列和两个最新分区
我希望每个CSV都是它自己的表。
因此,我编写了一个python脚本来枚举bucket内容,对于每个CSV文件,将该文件放到一个同名文件夹中,即s3://bucket\u name/FirstDate/Monday.CSV=>s3://bucket\u name/FirstDate/Monday/Monday.CSV.
然后,我将每个文件夹设置为包含路径(s3://bucket\u name/FirstDate/Monday
)。
这是伟大的,胶水爬虫现在为每个CSV文件创建一个我想要的表
但是我丢失了日期上的分区,因此爬虫程序在扫描FirstDate
中的Monday
文件夹时创建了一个名为Monday
的表,在扫描SecondDate
中的Monday
文件夹时创建了第二个名为Monday-1234randomstring
的表
我想知道如何在include路径中使用globbing,即s3://bucket\u name/**/Monday
,但这似乎不起作用
谁能帮助我理解如何构建数据结构?重述:
我有
s3://bucket_name/FirstDate/Monday.csv
s3://bucket_name/FirstDate/Tuesday.csv
s3://bucket_name/FirstDate/Wednesday.csv
s3://bucket_name/SecondDate/Monday.csv
s3://bucket_name/SecondDate/Tuesday.csv
s3://bucket_name/SecondDate/Wednesday.csv
CSV都谈论不同的概念,但共享一个非常相似的模式,即设置s3://bucket\u name
,因为include路径会导致一个表和两个分区,其中我希望每个文件一个表和两个分区
如何配置爬虫程序,或重新组织我的数据,以便当胶水爬虫程序对其进行爬虫时,它会在日期(我希望添加第三个日期等)生成一个分区,并为每个csv文件生成一个表?您需要通过每次传递不同的路径和表名的不同前缀来更新每次运行的爬虫程序定义。