Predikat pushdown hanya berfungsi untuk mempartisi kolom. Dengan kata lain, file data Anda harus ditempatkan di folder yang terstruktur secara hierarkis. Misalnya, jika data berada di s3://bucket/dataset/
dan dipartisi berdasarkan tahun, bulan dan hari maka strukturnya harus sebagai berikut:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>
Dalam kasus seperti itu, predikat pushdown akan berfungsi untuk kolom year
, month
dan day
hanya:
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")
Selain itu, Anda harus ingat bahwa predikat pushdown hanya berfungsi dengan sumber data s3.
Ini adalah postingan blog yang bagus ditulis oleh pengembang AWS Glue tentang partisi data.