FlatMap 클래스 - AWS Glue

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

FlatMap 클래스

컬렉션에서 각 DynamicFrame에 변환을 적용합니다. 결과는 하나의 DynamicFrame으로 병합되지 않고 컬렉션으로 유지됩니다.

FlatMap 예제

다음 스니펫 예제에서는 FlatMap에 적용할 때 동적 프레임 컬렉션에서 ResolveChoice 변환을 사용하는 방법을 보여줍니다. 입력에 사용되는 데이터는 JSON에서 Amazon S3 주소 s3://bucket/path-for-data/sample.json 자리 표시자에 있으며, 다음 데이터를 포함합니다.

[{ "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" ] }]
예 ResolveChoice를 DynamicFrameCollection에 적용하고 출력을 표시합니다.
#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()
중요

FlatMap.apply 직접 호출 시 frame_name 파라미터는 반드시 "frame"이어야 합니다. 현재 다른 값은 허용되지 않습니다.

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

메서드

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

컬렉션의 각 DynamicFrame에 변환을 적용하고 결과를 플랫합니다.

  • dfc – 플랫맵할 DynamicFrameCollection입니다(필수).

  • BaseTransformGlueTransform로부터 얻어진 변환을 사용하여 컬렉션의 각 멤버에게 적용합니다(필수).

  • frame_name - 컬렉션의 요소를 전달하기 위한 인수 이름입니다(필수).

  • transformation_ctx - 고유 문자열을 통해 상태 정보를 확인합니다(선택 사항).

  • base_kwargs - 기본 변환으로 전달을 위한 인수입니다(필수).

DynamicFrameCollection 원본의 변환을 각 DynamicFrame에 적용하여 생성한 새로운 DynamicFrameCollection을 반환합니다.

apply(cls, *args, **kwargs)

GlueTransform apply에서 상속됩니다.

name(cls)

GlueTransform name에서 상속됩니다.

describeArgs(cls)

GlueTransform describeArgs에서 상속됩니다.

describeReturn(cls)

GlueTransform describeReturn에서 상속됩니다.

describeTransform(cls)

GlueTransform describeTransform에서 상속됩니다.

describeErrors(cls)

GlueTransform describeErrors에서 상속됩니다.

describe(cls)

GlueTransform describe에서 상속됩니다.