

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在視覺化任務中使用 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>
+  若要使用 **Find Matches** 轉換，請在 [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/) 開啟 AWS Glue Studio 主控台。
+  建立機器學習轉換。建立完成後會產生 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/zh_tw/glue/latest/dg/images/resource-panel-blank-canvas.png)

1.  選擇資料來源節點，然後按一下視覺化任務圖表左上角的十字符號，開啟「資源」面板並搜尋「自訂轉換」。選擇**自訂轉換**節點以將其新增至圖表。**自訂轉換**會連結至資料來源節點。若未連結，則可按一下**自訂轉換**節點並選擇**節點屬性**索引標籤，然後在**節點父項**下方選擇資料來源。

1.  按一下視覺化圖表中的**自訂轉換**節點，然後選擇**節點屬性**索引標籤並命名自訂轉換。建議您重新命名轉換，以便在視覺化圖表中輕鬆識別轉換名稱。

1.  選擇**轉換**索引標籤，您可以在其中編輯程式碼區塊。您可在此處新增調用 FindMatches API 的程式碼。  
![選取「自訂轉換」節點時，螢幕擷取畫面會在「轉換」索引標籤中顯示程式碼區塊。](http://docs.aws.amazon.com/zh_tw/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.  在視覺畫圖表中按一下**自訂轉換**節點，然後按一下視覺化任務圖表左上角的十字符號，開啟「資源」面板並搜尋「從集合中選取」。由於集合中只有一個 DynamicFrame，無須變更預設選擇。

1.  您可以繼續新增轉換或存放結果，其中現已具有豐富的「尋找相符項目」額外資料欄。若您想在下游轉換中參考這些新資料欄，需要將其新增至轉換輸出結構描述。執行此作業的最簡易方式，是選擇**資料預覽**索引標籤，然後在結構描述索引標籤中選擇「使用 datapreview 結構描述」。

1.  若要自訂 FindMatchs，您可新增其他參數並傳遞至 'apply' 方法。參閱 [FindMatches 類別](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findmatches.html)。

## 新增 FindMatch 增量轉換
<a name="find-matches-incrementally-visual-job"></a>

 增量比對的程序與**新增 FindMatches 轉換**相同，但具有下列差異：
+  您需要兩個父節點，而非自訂轉換的父節點。
+  第一個父節點應為資料集。
+  第二個父節點應為增量資料集。

   將 `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)。