Como executo uma tarefa do AWS Glue em uma partição específica no Amazon S3?

2 minuto de leitura
0

Quero executar um trabalho do AWS Glue em uma partição específica em um local do Amazon Simple Storage Service (Amazon S3).

Descrição breve

Para filtrar partições no Catálogo de Dados do AWS Glue, use um predicado de push-down. Diferentemente de transformações de Filtro, os predicados de push-down permitem filtrar partições sem precisar listar e ler todos os arquivos no seu conjunto de dados.

Resolução

Crie uma tarefa do AWS Glue e, em seguida, especifique o predicado de push-down em DynamicFrame. No exemplo a seguir, o trabalho processa dados somente na partição 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')")

No exemplo a seguir, o predicado de push-down filtra por data. O trabalho processa dados somente na partição 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')")

No exemplo a seguir, o predicado de push-down filtra por data para partições de estilo não Hive. O trabalho processa dados somente na partição 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')" )

AWS OFICIAL
AWS OFICIALAtualizada há um ano