Classe FlatMap - AWS Glue

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Classe FlatMap

Aplica uma transformação a cada DynamicFrame do conjunto. Os resultados não são reduzidos a um único DynamicFrame, mas preservados como um conjunto.

Exemplos de FlatMap

O trecho de exemplo a seguir demonstra como usar a transformação ResolveChoice em um conjunto de quadros dinâmicos quando aplicada a um FlatMap. Os dados usados para entrada estão no JSON localizado no endereço Amazon S3 reservado s3://bucket/path-for-data/sample.json e contêm os dados a seguir.

[{ "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" ] }]
exemplo Aplique ResolveChoice a uma DynamicFrameCollection e mostre a saída.
#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

Ao chamar FlatMap.apply, o parâmetro frame_name deve ser "frame". Nenhum outro valor é aceito atualmente.

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 uma transformação para cada DynamicFrame em uma coleção e nivela os resultados.

  • dfc – O DynamicFrameCollection em que o flatmap será aplicado (obrigatório).

  • BaseTransform – Uma transformação de GlueTransform a ser aplicada a cada membro da coleção (obrigatório).

  • frame_name – O nome do argumento para o qual os elementos da coleção serão transmitidos (obrigatório).

  • transformation_ctx – Uma string única que é usada para identificar informações de estado (opcional).

  • base_kwargs – Os argumentos a serem transmitidos à transformação base (obrigatório).

Retorna um novo DynamicFrameCollection criado aplicando a transformação a cada DynamicFrame na origem DynamicFrameCollection.

apply(cls, *args, **kwargs)

Herdado de GlueTransform apply.

name(cls)

Herdado de GlueTransform name.

describeArgs(cls)

Herdado de GlueTransform describeArgs.

describeReturn(cls)

Herdado de GlueTransform describeReturn.

describeTransform(cls)

Herdado de GlueTransform describeTransform.

describeErrors(cls)

Herdado de GlueTransform describeErrors.

describe(cls)

Herdado de GlueTransform describe.