FlatMap clase - 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.

FlatMap clase

Aplica una transformación a cada uno deDynamicFrame los elementos de una colección. Los resultados no se agrupan en uno soloDynamicFrame, sino que se conservan como una colección.

Ejemplos de FlatMap

El siguiente fragmento de ejemplo muestra cómo utilizar laResolveChoice transformación en una colección de fotogramas dinámicos cuando se aplica a unFlatMap. Los datos utilizados para la entrada se encuentran en el JSON ubicado en la dirección Amazon S3 como marcador de posicións3://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 Aplicar ResolveChoice a DynamicFrameCollection y mostrar la salida.
#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 llamarFlatMap.apply, elframe_name parámetro 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.