如何在 Amazon S3 中的一个特定分区上运行 AWS Glue 作业?

上次更新时间:2019 年 10 月 10 日

如何在 Amazon Simple Storage Service (Amazon S3) 位置中的一个特定分区上运行 AWS Glue 作业?

简短描述

要筛选 AWS Glue 数据目录中的分区,请使用谓词下推。与筛选转换不同的是,谓词下推可使您筛选分区,无需列出和读取您的数据集中的所有文件。

解决方法

创建 AWS Glue 作业并在 DynamicFrame 中指定谓词下推。在以下示例中,作业仅处理 s3://awsexamplebucket/product_category=Video 分区中的数据:

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(product_category == 'Video')")

下面是按日期筛选的谓词下推示例。在本示例中,作业仅处理 s3://awsexamplebucket/year=2019/month=08/day=02 分区中的数据:

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(year == '2019' and month == '08' and day == '02')")

下面是按日期筛选的非 Hive 样式分区的谓词下推示例。在本示例中,作业仅处理 s3://awsexamplebucket/2019/07/03 分区中的数据:

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate ="(partition_0 == '2019' and partition_1 == '07' and partition_2 == '03')" )

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?