Comment exécuter une tâche AWS Glue sur une partition précise dans Amazon S3 ?

Lecture de 2 minute(s)
0

Comment exécuter une tâche AWS Glue sur une partition précise dans un emplacement Amazon Simple Storage Service (Amazon S3) ?

Brève description

Pour filtrer les partitions dans le catalogue de données AWS Glue, servez-vous d'un prédicat pushdown. Contrairement aux transformations Filter (Filtre), les prédicats pushdown vous permettent de filtrer les partitions sans avoir à répertorier et lire tous les fichiers de votre ensemble de données.

Résolution

Créez une tâche AWS Glue, puis indiquez le prédicat pushdown dans le DynamicFrame. Dans l'exemple suivant, la tâche traite les données de la partition s3://awsexamplebucket/product_category=Video uniquement :

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(product_category == 'Video')")

Dans l'exemple suivant, le prédicat pushdown filtre par date. La tâche traite les données de la partition s3://awsexamplebucket/year=2019/month=08/day=02 uniquement :

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')")

Dans l'exemple suivant, le prédicat pushdown filtre par date les partitions autres que Hive. La tâche traite les données de la partition s3://awsexamplebucket/2019/07/03 uniquement :

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 OFFICIEL
AWS OFFICIELA mis à jour il y a un an