Pushdown-prædikat virker kun til opdeling af kolonner. Med andre ord skal dine datafiler placeres i hierarkisk strukturerede mapper. For eksempel, hvis data er placeret i s3://bucket/dataset/
og opdelt efter år, måned og dag, så skal strukturen være følgende:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
I et sådant tilfælde ville pushdown-prædikat fungere for kolonner year
, month
og day
kun:
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")
Udover det skal du huske på, at pushdown-prædikater kun fungerer med s3-datakilder.
Her er et fint blogindlæg skrevet af AWS Glue devs om datapartitionering.