Pushdown-predikaat werkt alleen voor het partitioneren van kolommen. Met andere woorden, uw gegevensbestanden moeten in hiërarchisch gestructureerde mappen worden geplaatst. Als gegevens zich bijvoorbeeld bevinden in s3://bucket/dataset/
en gepartitioneerd op jaar, maand en dag, dan zou de structuur als volgt moeten zijn:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
In dat geval zou het pushdown-predikaat werken voor kolommen year
, month
en day
alleen:
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")
Daarnaast moet je er rekening mee houden dat pushdown-predikaten alleen werken met s3-gegevensbronnen.
Hier is een mooie blogpost geschreven door AWS Glue-ontwikkelaars over gegevenspartitionering.