Clase FlatMap - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Clase FlatMap

Aplica una transformación a cada DynamicFrame en una colección. Los resultados no se agrupan en un solo DynamicFrame, sino que se conservan como una colección.

Ejemplos de FlatMap

El siguiente fragmento de ejemplo muestra cómo utilizar la transformación ResolveChoice en un conjunto de marcos dinámicos cuando se aplica a un FlatMap. Los datos utilizados para la entrada se encuentran en el JSON ubicado en el marcador de posición de la dirección Amazon S3 s3://bucket/path-for-data/sample.json y contienen los siguientes datos.

[{ "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" ] }]
ejemplo Aplique ResolveChoice a una DynamicFrameCollection y muestre el resultado.
#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

Al llamar a FlatMap.apply, el parámetro frame_name debe ser "frame". Actualmente no se acepta ningún otro valor.

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étodos

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

Aplica una transformación a cada DynamicFrame en una colección y aplana los resultados.

  • dfc: el DynamicFrameCollection para aplanar (obligatorio).

  • BaseTransform: una transformación derivada de GlueTransform que se aplica a cada miembro de la colección (obligatorio).

  • frame_name: el nombre del argumento al que se pasan los elementos de la colección (obligatorio).

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • base_kwargs: argumentos que se pasan a la transformación de base (obligatorio).

Devuelve un nuevo DynamicFrameCollection que se crea al aplicar la transformación a cada DynamicFrame en la DynamicFrameCollection de origen.

apply(cls, *args, **kwargs)

Heredado de GlueTransform apply.

name(cls)

Heredado de GlueTransform nombre.

describeArgs(cls)

Heredado de GlueTransform describeArgs.

describeReturn(cls)

Heredado de GlueTransform describeReturn.

describeTransform(cls)

Heredado de GlueTransform describeTransform.

describeErrors(cls)

Heredado de GlueTransform describeErrors.

describe(cls)

Heredado de GlueTransform describe.