組み込み変換 - AWS Glue

組み込み変換

AWS Glue には、データを処理するために使用できる一式の組み込み変換が用意されています。これらの変換は、ETL スクリプトから呼び出すことができます。データは、変換から変換へと DynamicFrame というデータ構造で渡されます。これは、Apache Spark SQL DataFrame を拡張したものです。DynamicFrame にはデータが含まれており、データを処理するためにそのスキーマを参照します。これらの変換の詳細については、AWS Glue PySpark 変換リファレンス を参照してください。

AWS Glue では、以下の組み込み変換が用意されています。

ApplyMapping

DynamicFrame のソース列とデータ型を、返された DynamicFrame のターゲット列とデータ型にマッピングします。ソース列、ソース型、ターゲット列、およびターゲット型を含むタプルのリストであるマッピング引数を指定します。

DropFields

DynamicFrame からフィールドを削除します。出力 DynamicFrame には、入力より少ないフィールドが含まれています。paths 引数を使用して削除するフィールドを指定します。paths 引数は、ドット表記法を使用してスキーマツリー構造内のフィールドを指します。たとえば、ツリー内のフィールド A の子であるフィールド B を削除するには、そのパスに A.B と入力します。

DropNullFields

DynamicFrame から null フィールドを削除します。出力 DynamicFrame のスキーマには、Null 型のフィールドが含まれていません。

フィルタ

DynamicFrame からレコードを選択し、フィルタリングされた DynamicFrame を返します。Lambda 関数などの関数を指定し、レコードが出力されるかどうかを指定します。出力される場合は関数で true が返され、出力されない場合は false が返されます。

参加

2 つの DynamicFrames を等価結合します。キーフィールドを各フレームのスキーマに指定して、等価性を比較します。出力 DynamicFrame には、キーが一致する行が含まれています。

マップ

DynamicFrame のレコードに関数を適用し、変換された DynamicFrame を返します。指定された関数は各入力レコードに適用され、出力レコードに変換されます。マップ変換では、外部 API オペレーションを使用して、フィールドの追加、フィールドの削除、ルックアップの実行を行うことができます。例外があった場合、処理は継続され、レコードがエラーとしてマークされます。

MapToCollection

DynamicFrame の各 DynamicFrameCollection に変換が適用されます。

関係付け

DynamicFrame をリレーショナル (行と列) 形式に変換します。データのスキーマに基づいて、この変換はネストされた構造を平坦化し、配列構造から DynamicFrames を作成します。出力は、複数のテーブルにデータを書き込むことができる DynamicFrames のコレクションです。

RenameField

DynamicFrame のフィールドの名前を変更します。出力は、指定されたフィールドの名前が変更された DynamicFrame です。スキーマ内の新しい名前とパスを、名前を変更するフィールドに指定します。

ResolveChoice

ResolveChoice を使用して、列に複数タイプの値が含まれている場合の処理方法を指定します。列を単一のデータ型にキャストするか、1 つ以上の型を破棄するか、またはすべての型を別々の列または構造体に保持するかを選択できます。列ごとに異なる解決ポリシーを選択するか、すべての列に適用されるグローバルポリシーを指定できます。

SelectFields

保持するフィールドを DynamicFrame から選択します。出力は、選択したフィールドのみを持つ DynamicFrame です。保持するフィールドへのパスをスキーマ内に指定します。

SelectFromCollection

DynamicFrame のコレクションから 1 つの DynamicFrames を選択します。出力は選択された DynamicFrame です。DynamicFrame のインデックスを指定して選択します。

スピゴット

DynamicFrame からサンプルデータを書き込みます。出力は Amazon S3 の JSON ファイルです。Amazon S3 の場所と DynamicFrame のサンプリング方法を指定します。サンプリングは、ファイルの先頭から指定された数のレコード、または書き込むレコードを選択する確率係数とすることができます。

SplitFields

フィールドを 2 つの DynamicFrames に分割します。出力は、DynamicFrames のコレクションです。一方は選択されたフィールドを持ち、他方は残りのフィールドを持ちます・ 選択するフィールドへのパスをスキーマ内に指定します。

SplitRows

述語に基づいて DynamicFrame の行を分割します。出力は、2 つの DynamicFrames のコレクションです。一方は選択された行を持ち、他方は残りの行を持ちます。スキーマのフィールドによって比較を指定します。例えば、 。A > 4

Unbox

DynamicFrame から文字列フィールドをアンボックスします。出力は、選択された文字列フィールドが再フォーマットされた DynamicFrame です。文字列フィールドが解析され、いくつかのフィールドに置き換えられます。スキーマ内で、再フォーマットする文字列フィールドと現在のフォーマットタイプのパスを指定します。たとえば、JSON 形式 {"a": 3, "b": "foo", "c": 1.2} の 1 つのフィールドを持つ CSV ファイルがあるとします。この変換では、JSON をintstring、および double の 3 つのフィールドに再フォーマットできます。

ジョブスクリプトでこれらの変換を使用する例については、AWS ブログ「Building an AWS Glue ETL pipeline locally without an AWS account」を参照してください。