Classe FlatMap - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Classe FlatMap

Applica una trasformazione a ogni DynamicFrame in una raccolta. I risultati non vengono appiattiti in un unico DynamicFrame ma conservati come una raccolta.

Esempi per FlatMap

Il seguente frammento di esempio mostra come utilizzare la trasformazione ResolveChoice su una raccolta di frame dinamici quando applicata a una FlatMap. I dati utilizzati per l'input sono nel JSON situato all'indirizzo segnaposto s3://bucket/path-for-data/sample.json di Amazon S3 e contengono i seguenti dati.

[{ "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" ] }]
Esempio Applica ResolveChoice a una DynamicFrameCollection e mostra l'output.
#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()
Importante

Quando si chiama FlatMap.apply, il parametro frame_name deve essere "frame". Nessun altro valore è attualmente accettato.

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" ] }

Metodi

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

Si applica alla trasformazione per ogni DynamicFrame in una raccolta e appiattisce i risultati.

  • dfc: la DynamicFrameCollection su cui applicare la classe flatmap (obbligatorio).

  • BaseTransform: una trasformazione derivata da GlueTransform da applicare a ciascun membro della raccolta (obbligatorio).

  • frame_name: Il nome dell'argomento a cui passare gli elementi della raccolta (obbligatorio).

  • transformation_ctx: una stringa univoca utilizzata per identificare informazioni sullo stato (opzionale).

  • base_kwargs: argomenti per passare alla trasformazione di base (obbligatorio).

Restituisce una nuova DynamicFrameCollection creata applicando la trasformazione a ciascun DynamicFrame nella DynamicFrameCollection di origine.

apply(cls, *args, **kwargs)

Ereditato da GlueTransform apply.

name(cls)

Ereditato da GlueTransform name.

describeArgs(cls)

Ereditato da GlueTransform describeArgs.

describeReturn(cls)

Ereditato da GlueTransform describeReturn.

describeTransform(cls)

Ereditato da GlueTransform describeTransform.

describeErrors(cls)

Ereditato da GlueTransform describeErrors.

describe(cls)

Ereditato da GlueTransform describe.