Изтласкващият предикат работи само за разделяне на колони. С други думи, вашите файлове с данни трябва да бъдат поставени в йерархично структурирани папки. Например, ако данните се намират в s3://bucket/dataset/
и разделени по година, месец и ден, тогава структурата трябва да бъде следната:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
В такъв случай предикатът за натискане надолу ще работи за колони 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")
Освен това трябва да имате предвид, че предикатите за натискане надолу работят само с източници на данни s3.
Ето една хубава публикация в блог написано от разработчиците на AWS Glue относно разделянето на данни.