

# ビジュアルジョブでの FindMatches の使用
<a name="find-matches-visual-job"></a>

 AWS Glue Studio で **FindMatches** 変換を使用するには、FindMatches API を呼び出す **カスタム変換** ノードを使用します。カスタム変換の使用に関する詳細については、「[カスタム変換を作成する](https://docs.aws.amazon.com/glue/latest/ug/transforms-custom.html)」を参照してください。

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

## 前提条件
<a name="adding-find-matches-to-a-visual-job-prerequisites"></a>
+  **一致の検索** 変換を使用するには、AWS Glue Studio で [[https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/)] コンソールを開きます。
+  機械学習変換を作成します。作成すると、transformId が生成されます。この ID は以下の手順で必要になります。機械学習変換の作成方法の詳細については、「[機械学習変換の追加と編集](https://docs.aws.amazon.com/glue/latest/dg/console-machine-learning-transforms.html#console-machine-learning-transforms-actions)」を参照してください。

## FindMatches 変換の追加
<a name="adding-find-matches-to-a-visual-job"></a>

**FindMatches 変換を追加するには**

1.  AWS Glue Studio ジョブエディターで、ビジュアルジョブグラフの左上隅にある十字記号をクリックして [リソース] パネルを開き、**[データ]** タブを選択してデータソースを選択します。これは、一致を確認するデータ ソースです。  
![スクリーンショットには、円の中に十字のシンボルが表示されています。ビジュアルジョブエディタでこれをクリックすると、[リソース] パネルが開きます。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/resource-panel-blank-canvas.png)

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

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

1.  コードブロックを編集するには、**[変換]** タブを選択します。ここで、FindMatches API を呼び出すコードを追加できます。  
![このスクリーンショットは、[カスタム変換] ノードを選択したときの [Transform] タブのコードブロックを示しています。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/custom-transform-code-block.png)

    コードブロックには、すぐに始めることができるようにコードが予め入力されています。予め入力されているコードを下記のテンプレートで上書きします。テンプレートには、入力できる **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))
   ```

1.  ビジュアルグラフの**[カスタム変換]**ノードをクリックし、ビジュアルジョブグラフの左上隅にある十字記号をクリックして[リソース] パネルを開き、「Select From Collection」を検索します。コレクションには DynamicFrame が 1 つしかないため、デフォルトの選択を変更する必要はありません。

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

1.  FindMatches をカスタマイズするには、「apply」メソッドに渡すパラメーターを追加できます。[FindMatches クラス](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findmatches.html)を参照してください。

## 「FindMatches」段階的な変換の追加
<a name="find-matches-incrementally-visual-job"></a>

 インクリメンタルマッチングの場合、プロセスは **FindMatches 変換の追加**と同じですが、次の点が異なります。
+  カスタム変換の親ノードの代わりに、2 つの親ノードが必要です。
+  最初の親ノードはデータセットでなければなりません。
+  2 番目の親ノードはインクリメンタルデータセットでなければなりません。

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

  ```
  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 クラス](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.html)」を参照してください。