

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

# 聯結資料集
<a name="transforms-configure-join"></a>

*Join* 轉換允許您將兩個資料集合成一個。您可以在要比較的每個資料集的結構描述中指定索引鍵名稱。`DynamicFrame` 的輸出包含索引鍵符合聯結條件的列。符合聯結條件的每個資料集中的列會合併成輸出 `DynamicFrame` 中的單一列，其中包含任何一個資料集中找到的所有欄。

**將 Join 轉換節點新增到您的任務圖表**

1. 如果只有一個可用的資料來源，您必須將新的資料來源節點新增至任務圖表。

1. 選擇聯結的其中一個來源節點。開啟資源面板，然後選擇**聯結**，將新轉換新增至您的任務圖表。

1. 在 **Node properties (節點屬性)** 索引標籤上，輸入任務圖表中節點的名稱。

1. 在**節點屬性**索引標籤的**節點父項**標題下，新增一個節點父項，以便有兩個資料集為聯結提供輸入。父項可以是資料來源節點或轉換節點。
**注意**  
一個聯結只能有兩個父節點。

1. 選擇**轉換**索引標籤。

   如果您看到一則訊息，指出有衝突的索引鍵名稱，您可以：
   + 選擇**解決它**以自動將 *ApplyMapping* 轉換節點新增到您的任務圖表。ApplyMapping 節點會將字首新增至資料集中與其他資料集中的索引鍵名稱相同的任何索引鍵。例如，如果您使用預設值 **right**，那麼右側資料集中任何具有與左側資料集索引鍵相同名稱的索引鍵將被重命名為 `(right)key name`。
   + 在任務圖表中的前面手動新增轉換節點，以移除或重新命名衝突的索引鍵。

1. 在**聯結類型**清單中選擇聯結的類型。
   + **內部聯結**：根據聯結條件，從兩個資料集為每個相符項目傳回欄的列。不會傳回不符合聯結條件的列。
   + **左聯結**：左側資料集的所有列，以及右側資料集中符合聯結條件的列。
   + **右聯結**：右側資料集的所有列，以及左側資料集中符合聯結條件的列。
   + **外聯結**：來自兩個資料集的所有列。
   + **左半聯結**：根據聯結條件，在右側資料集內具有相符項目的左側資料集中所有列。
   + **左反聯結**：根據聯結條件，在右側資料集內沒有相符項目的左側資料集中所有列。

1. 在**轉換**索引標籤的**聯結條件**標題下，選擇**新增條件**。從每個資料集中選擇要比較的屬性索引鍵。比較運算子左側的屬性索引鍵稱為左側資料集，右側的屬性索引鍵稱為右側資料集。

   對於更複雜的聯結條件，您可以多次選擇**新增條件**，新增其他比對索引鍵。如果您不小心新增條件，您可以選擇刪除圖示 (![\[\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/delete-icon-black.png)) 將其移除。

1. (選用) 設定轉換節點屬性之後，您可以選擇節點詳細資訊面板中的**輸出結構描述**索引標籤來檢視資料的修改後結構描述。當您第一次針對任務中的任何節點選擇此索引標籤時，系統會提示您提供 IAM 角色以存取資料。如果您尚未在**任務詳細資訊**索引標籤上指定 IAM 角色，系統會提示您在此輸入 IAM 角色。

1. (選用) 設定節點屬性和轉換屬性之後，您可以選擇節點詳細資訊面板中的**資料預覽**索引標籤來預覽修改後的資料集。當您第一次針對任務中的任何節點選擇此索引標籤時，系統會提示您提供 IAM 角色以存取資料。使用此功能需支付相關費用，並且在您提供 IAM 角色後立即開始計費。

如需聯結輸出結構描述的範例，請試想在具有下列屬性索引鍵的兩個資料集之間使用聯結：

```
Left: {id, dept, hire_date, salary, employment_status}
Right: {id, first_name, last_name, hire_date, title}
```

聯結被設定為使用 `=` 比較運算子比對 `id` 和 `hire_date` 索引鍵。

因為這兩個資料集都包含 `id` 和 `hire_date` 索引鍵，您選擇**解決它**以自動新增字首 **right** 到右側資料集的索引鍵。

輸出結構描述中的索引鍵將是：

```
{id, dept, hire_date, salary, employment_status, 
(right)id, first_name, last_name, (right)hire_date, title}
```