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

Date de la dernière mise à jour : 10/10/2019

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

Brève description

Pour filtrer sur les partitions du catalogue de données AWS Glue, utilisez 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 et spécifiez 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')")

Voici un exemple de prédicat pushdown qui filtre par date. Dans cet exemple, 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')")

Voici un exemple de prédicat pushdown qui filtre par date les partitions autres que Hive. Dans cet exemple, 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')" )

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?