Ana*_*ail 3 mysql amazon-web-services python-3.x pyspark aws-glue
我有一个MySQL源,正在从中创建带有谓词下推条件的Glue动态框架,如下所示
datasource = glueContext.create_dynamic_frame_from_catalog(
database = source_catalog_db,
table_name = source_catalog_tbl,
push_down_predicate = "id > 1531812324",
transformation_ctx = "datasource")
Run Code Online (Sandbox Code Playgroud)
无论我在“ push_down_predicate”中添加什么条件,我总是会在“数据源”中获取所有记录。我想念什么?
下推谓词仅适用于分区列。换句话说,您的数据文件应放在分层结构的文件夹中。例如,如果数据位于s3://bucket/dataset/年,月和日中并按年,月和日进行分区,则结构应如下:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,下推谓词将工作列year,month并且day只:
datasource = glueContext.create_dynamic_frame_from_catalog(
database = source_catalog_db,
table_name = source_catalog_tbl,
push_down_predicate = "year = 2017 and month > 6 and day between 3 and 10",
transformation_ctx = "datasource")
Run Code Online (Sandbox Code Playgroud)
除此之外,您还必须记住,下推谓词仅适用于s3数据源。
这是AWS Glue开发人员撰写的有关数据分区的不错的博客文章。
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |