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
: elDynamicFrameCollection
para aplanar (obligatorio).BaseTransform
: una transformación derivada deGlueTransform
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.