O predicado de empilhamento funciona apenas para colunas de particionamento. Em outras palavras, seus arquivos de dados devem ser colocados em pastas estruturadas hierarquicamente. Por exemplo, se os dados estiverem localizados em
s3://bucket/dataset/
e particionado por ano, mês e dia então a estrutura deve ser a seguinte:s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
Nesse caso, o predicado de empilhamento funcionaria para as colunas
year
, month
e day
só: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")
Além disso, você deve ter em mente que os predicados de empilhamento funcionam apenas com fontes de dados s3.
Aqui está uma bela postagem de blog escrito por desenvolvedores do AWS Glue sobre particionamento de dados.