FlatMap クラス
コレクションの各 DynamicFrame に変換が適用されます。結果が単一の DynamicFrame にフラット化されるのではなく、コレクションとして保存されます。
FlatMap の例
次のスニペットの例は、FlatMap に適用したときに、ResolveChoice 変換を動的フレームのコレクションで使用する方法を示しています。入力に使用されるデータは、プレースホルダ Amazon S3 アドレス s3://bucket/path-for-data/sample.json にある 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(必須)。BaseTransform– コレクションの各メンバーに適用するGlueTransformから派生した変換 (必須)。frame_name– コレクションの要素を渡す引数名 (必須)。transformation_ctx- 状態情報を識別するために使用される一意の文字列 (オプション)。base_kwargs– ベース変換に渡す引数 (必須)。
ソース DynamicFrameCollection の各 DynamicFrame に変換を適用して作成された新しい DynamicFrameCollection を返します。
apply(cls, *args, **kwargs)
継承元は GlueTransform 適用。
name(cls)
継承元は GlueTransform 名前。
describeArgs(cls)
継承元は GlueTransform describeArgs。
describeReturn(cls)
継承元は GlueTransform describeReturn。
describeTransform(cls)
継承元は GlueTransform describeTransform。
describeErrors(cls)
継承元は GlueTransform describeErrors。
describe(cls)
継承元は GlueTransform 説明。