Aws胶水 - S3 - 原生Python

时间:2018-01-20 07:00:54

标签: python python-3.x amazon-redshift aws-glue

在AWS Glue中如何处理S3中每周都会更改的文件。

实施例: 第1周:“filename01072018.csv” 第2周:“filename01142018.csv”

这些文件以相同的格式设置,但我需要Glue能够每周更改以将此数据从S3加载到Redshift中。 Glue的代码使用本机Python作为后端。

3 个答案:

答案 0 :(得分:1)

AWS Glue抓取工具应该能够找到您的CSV文件,因为它们的名称没有您的任何配置。

例如,我的Kinesis流生成的文件具有如下所示的路径和名称:

my_events_folder/2018/02/13/20/my-prefix-3-2018-02-13-20-18-28-112ab3f0-5794-4f77-9a84-83efafeecabc
my_events_folder/2018/02/13/20/my-prefix-2-2018-02-13-20-12-00-7f2efb62-827b-46a6-83c4-b4c52dd87d60
...

AWS Glue只会找到这些文件并自动对其进行分类。希望这会有所帮助。

答案 1 :(得分:0)

AWS Glue应该能够处理文件夹中的所有文件,而不管单个作业中的名称如何。如果您不希望再次处理旧文件,请在每次运行后使用boto3 api for s3将其移动到另一个位置。

答案 2 :(得分:0)

如果您有两种不同的文件类型(具有不同的内部格式),则它们必须位于单独的文件夹层次结构中。无法告诉爬虫仅寻找redfile*.csv而忽略bluefile%.csv。而是使用用户单独的层次结构,例如:

s3://my-bucket/redfiles/
                       redfile01072018.csv
                       redfile01142018.csv
                       ...
s3://my-bucket/bluefiles/
                       bluefile01072018.csv
                       bluefile01142018.csv
                       ...

设置两个搜寻器,一个搜寻器s3://my-bucket/redfiles/,另一个搜寻器s3://my-bucket/bluefiles/