Quiero ejecutar un trabajo de AWS Glue en una partición específica en una ubicación de Amazon Simple Storage Service (Amazon S3).
Breve descripción
Para filtrar las particiones en el Catálogo de datos de AWS Glue, utilice un predicado de apilado. A diferencia de las transformaciones Filtrar, los predicados de apilado permiten filtrar las particiones sin tener que crear un listado y leer todos los archivos en su conjunto de datos.
Resolución
Cree un trabajo de AWS Glue y, a continuación, especifique el predicado de apilado en DynamicFrame. En el siguiente ejemplo, el trabajo solo procesa los datos en la partición s3://awsexamplebucket/product_category=Video:
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(product_category == 'Video')")
En el siguiente ejemplo, el predicado de apilado filtra en función de la fecha. El trabajo solo procesa los datos en la partición s3://awsexamplebucket/year=2019/month=08/day=02:
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(year == '2019' and month == '08' and day == '02')")
En el siguiente ejemplo, el predicado de apilado filtra las particiones que no son de estilo Hive en función de la fecha. El trabajo solo procesa los datos en la partición s3://awsexamplebucket/2019/07/03:
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate ="(partition_0 == '2019' and partition_1 == '07' and partition_2 == '03')" )