Classe FlatMap - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Classe FlatMap

Applique une transformation à chaque DynamicFrame d'une collection. Les résultats ne sont pas aplatis en un seul DynamicFrame, mais conservés sous forme de collection.

Exemples pour FlatMap

L'exemple d'extrait suivant montre comment utiliser la transformation ResolveChoice sur une collection de cadres dynamiques lorsqu'elle est appliquée à un FlatMap. Les données utilisées pour l'entrée se trouvent dans le JSON situé à l'adresse Amazon S3 de l'espace réservé s3://bucket/path-for-data/sample.json et contiennent les données suivantes.

[{ "firstname": "Arnav", "lastname": "Desai", "address": { "street": "6 Anyroad Avenue", "city": "London", "state": "England", "country": "UK" }, "phone": 17235550101, "affiliations": [ "General Anonymous Example Products", "Example Independent Research", "Government Department of Examples" ] }, { "firstname": "Mary", "lastname": "Major", "address": { "street": "7821 Spot Place", "city": "Centerville", "state": "OK", "country": "US" }, "phone": 19185550023, "affiliations": [ "Example Dot Com", "Example Independent Research", "Example.io" ] }, { "firstname": "Paulo", "lastname": "Santos", "address": { "street": "123 Maple Street", "city": "London", "state": "Ontario", "country": "CA" }, "phone": 12175550181, "affiliations": [ "General Anonymous Example Products", "Example Dot Com" ] }]
Exemple Appliquez ResolveChoice à une DynamicFrameCollection et affichez le résultat.
#Read DynamicFrame datasource = glueContext.create_dynamic_frame_from_options("s3", connection_options = {"paths":["s3://bucket/path/to/file/mysamplejson.json"]}, format="json") datasource.printSchema() datasource.show() ## Split to create a DynamicFrameCollection split_frame=datasource.split_fields(["firstname","lastname","address"],"personal_info","business_info") split_frame.keys() print("---") ## Use FlatMap to run ResolveChoice kwargs = {"choice": "cast:string"} flat = FlatMap.apply(split_frame, ResolveChoice, frame_name="frame", transformation_ctx='tcx', **kwargs) flat.keys() ##Select one of the DynamicFrames personal_info = flat.select("personal_info") personal_info.printSchema() personal_info.show() print("---") business_info = flat.select("business_info") business_info.printSchema() business_info.show()
Important

Lorsque vous appelez FlatMap.apply, le paramètre frame_name doit être "frame". Aucune autre valeur n'est actuellement acceptée.

root |-- firstname: string |-- lastname: string |-- address: struct | |-- street: string | |-- city: string | |-- state: string | |-- country: string |-- phone: long |-- affiliations: array | |-- element: string --- { "firstname": "Mary", "lastname": "Major", "address": { "street": "7821 Spot Place", "city": "Centerville", "state": "OK", "country": "US" }, "phone": 19185550023, "affiliations": [ "Example Dot Com", "Example Independent Research", "Example.io" ] } { "firstname": "Paulo", "lastname": "Santos", "address": { "street": "123 Maple Street", "city": "London", "state": "Ontario", "country": "CA" }, "phone": 12175550181, "affiliations": [ "General Anonymous Example Products", "Example Dot Com" ] } --- root |-- firstname: string |-- lastname: string |-- address: struct | |-- street: string | |-- city: string | |-- state: string | |-- country: string { "firstname": "Mary", "lastname": "Major", "address": { "street": "7821 Spot Place", "city": "Centerville", "state": "OK", "country": "US" } } { "firstname": "Paulo", "lastname": "Santos", "address": { "street": "123 Maple Street", "city": "London", "state": "Ontario", "country": "CA" } } --- root |-- phone: long |-- affiliations: array | |-- element: string { "phone": 19185550023, "affiliations": [ "Example Dot Com", "Example Independent Research", "Example.io" ] } { "phone": 12175550181, "affiliations": [ "General Anonymous Example Products", "Example Dot Com" ] }

Méthodes

__call__(dfc, BaseTransform, frame_name, transformation_ctx = "", **base_kwargs)

Applique une transformation à chaque DynamicFrame d'une collection et aplatit les résultats.

  • dfcDynamicFrameCollection sur lequel effectuer un flatmap (obligatoire).

  • BaseTransform – Transformation dérivée de GlueTransform à appliquer à chaque membre de la collection (obligatoire).

  • frame_name – Nom de l'argument auquel transmettre les éléments de la collection (obligatoire).

  • transformation_ctx – Chaîne unique utilisée pour identifier les informations sur l'état (facultatif).

  • base_kwargs – Arguments à transmettre à la transformation de base (obligatoire).

Retourne un nouvel objet DynamicFrameCollection en appliquant la transformation à chaque DynamicFrame de l'objet DynamicFrameCollection source.

apply(cls, *args, **kwargs)

Hérité de GlueTransform s'appliquent.

name(cls)

Hérité de GlueTransform name.

describeArgs(cls)

Hérité de GlueTransform describeArgs.

describeReturn(cls)

Hérité de GlueTransform describeReturn.

describeTransform(cls)

Hérité de GlueTransform describeTransform.

describeErrors(cls)

Hérité de GlueTransform describeErrors.

describe(cls)

Hérité de GlueTransform describe.