ビジュアルジョブでの FindMatches の使用 - AWS Glue

ビジュアルジョブでの FindMatches の使用

AWS Glue Studio で FindMatches 変換を使用するには、FindMatches API を呼び出す カスタム変換 ノードを使用します。カスタム変換の使用に関する詳細については、「カスタム変換を作成する」を参照してください。

注記

現在、FindMatches API は、Glue 2.0 でのみ動作します。FindMatches API を呼び出すカスタム変換を使用してジョブを実行するには、AWS Glue のバージョンが [ジョブの詳細] タブの Glue 2.0 に表示されていることを確認してください。AWS Glue のバージョンが Glue 2.0 でない場合、ジョブは実行時に失敗し、「'awsglueml.transforms' から 'FindMatches' という名前の変換をインポートできません」というエラーメッセージが表示されます。

前提条件

  • 一致の検索 変換を使用するには、AWS Glue Studio で [https://console.aws.amazon.com/gluestudio/] コンソールを開きます。

  • 機械学習変換を作成します。作成すると、transformId が生成されます。この ID は以下の手順で必要になります。機械学習変換の作成方法の詳細については、「機械学習変換の追加と編集」を参照してください。

FindMatches 変換の追加

FindMatches 変換を追加するには
  1. AWS Glue Studio ジョブエディターで、ビジュアルジョブグラフの左上隅にある十字記号をクリックして [リソース] パネルを開き、[データ] タブを選択してデータソースを選択します。これは、一致を確認するデータ ソースです。

    スクリーンショットには、円の中に十字のシンボルが表示されています。ビジュアルジョブエディタでこれをクリックすると、[リソース] パネルが開きます。
  2. データソースノードを選択し、ビジュアルジョブグラフの左上隅にある十字記号をクリックして [リソース] パネルを開き、「custom transform」を検索します。カスタム変換ノードを選択してグラフに追加します。カスタム変換はデータソースノードにリンクされています。リンクされていない場合は、カスタム変換ノードをクリックして[ノードプロパティ] タブを選択し、[ノードの親] でデータソースを選択します。

  3. ビジュアルグラフの[カスタム変換]ノードをクリックし、[ノードプロパティ]タブを選択し、カスタム変換に名前を付けます。ビジュアルグラフに表示される変換名は、わかりやすい名前に変更することをお勧めします。

  4. コードブロックを編集するには、[変換] タブを選択します。ここで、FindMatches API を呼び出すコードを追加できます。

    このスクリーンショットは、[カスタム変換] ノードを選択したときの [Transform] タブのコードブロックを示しています。

    コードブロックには、すぐに始めることができるようにコードが予め入力されています。予め入力されているコードを下記のテンプレートで上書きします。テンプレートには、入力できる transformId のプレースホルダーが表示されています。

    def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dynf = dfc.select(list(dfc.keys())[0]) from awsglueml.transforms import FindMatches findmatches = FindMatches.apply(frame = dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  5. ビジュアルグラフの[カスタム変換]ノードをクリックし、ビジュアルジョブグラフの左上隅にある十字記号をクリックして[リソース] パネルを開き、「Select From Collection」を検索します。コレクションには DynamicFrame が 1 つしかないため、デフォルトの選択を変更する必要はありません。

  6. 続けて変換を追加したり、結果を保存したりすることができます。結果には、[一致の検索] 列が追加されました。これらの新しい列を下流の変換で参照する場合は、それらを変換出力スキーマに追加する必要があります。それを行う最も簡単な方法は、[データプレビュー] タブを選択し、[スキーマ] タブで [データプレビュースキーマの使用] を選択することです。

  7. FindMatches をカスタマイズするには、「apply」メソッドに渡すパラメーターを追加できます。FindMatches クラスを参照してください。

「FindMatches」段階的な変換の追加

インクリメンタルマッチングの場合、プロセスは FindMatches 変換の追加と同じですが、次の点が異なります。

  • カスタム変換の親ノードの代わりに、2 つの親ノードが必要です。

  • 最初の親ノードはデータセットでなければなりません。

  • 2 番目の親ノードはインクリメンタルデータセットでなければなりません。

    テンプレートコードブロックで transformIdtransformId に置き換えてください。

    def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dfs = list(dfc.values()) dynf = dfs[0] inc_dynf = dfs[1] from awsglueml.transforms import FindIncrementalMatches findmatches = FindIncrementalMatches.apply(existingFrame = dynf, incrementalFrame = inc_dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  • オプションのパラメータについては、「FindIncrementalMatches クラス」を参照してください。