

# Unir conjuntos de dados
<a name="transforms-configure-join"></a>

A transformação *Join* (Unir) permite combinar dois conjuntos de dados em um. Você especifica os nomes das chaves no esquema de cada conjunto de dados a ser comparado. O `DynamicFrame` de saída contém linhas em que as chaves atendem à condição de união. As linhas em cada conjunto de dados que atendem à condição de união são combinadas em uma única linha no `DynamicFrame` de saída que contém todas as colunas encontradas em qualquer um dos conjuntos de dados.

**Para adicionar um nó de transformação Join (Unir) ao diagrama de trabalho**

1. Se houver apenas uma fonte de dados disponível, você deverá adicionar um novo nó de origem dos dados ao diagrama de trabalho.

1. Escolha um dos nós de origem para a união. Abra o painel Recurso e escolha **Unir** para adicionar uma nova transformação ao diagrama do trabalho.

1. Na guia **Node properties** (Propriedades do nó), insira um nome para o nó no diagrama de trabalho.

1. Na guia **Node properties** (Propriedades do nó), no cabeçalho **Node parents** (Nós pais), adicione um nó pai para que haja dois conjuntos de dados fornecendo entradas para a união. O pai pode ser um nó de origem dos dados ou um nó de transformação. 
**nota**  
Uma união pode ter apenas dois nós pais.

1. Escolha a guia **Transform** (Transformação).

   Se você vir uma mensagem indicando que existem nomes de chaves conflitantes, você pode:
   + Escolher **Resolve it** (Resolver) para adicionar automaticamente um nó de transformação *ApplyMapping* (Aplicar mapeamento) em seu diagrama de trabalho. O nó ApplyMapping (Aplicar mapeamento) adiciona um prefixo a todas as chaves no conjunto de dados que tenham o mesmo nome de uma chave do outro conjunto de dados. Por exemplo, se você usar o valor padrão **right**, todas as chaves no conjunto de dados direito que tenham o mesmo nome de uma chave do conjunto de dados esquerdo serão renomeadas para `(right)key name`.
   + Adicionar manualmente um nó de transformação anteriormente no diagrama de trabalho para remover ou renomear as chaves conflitantes.

1. Escolha o tipo de junção na lista **Join type** (Tipo de união). 
   + **Inner join** (União interna): retorna uma linha com colunas de ambos os conjuntos de dados para cada correspondência com base na condição de união. As linhas que não satisfazem a condição de união não são retornadas.
   + **Left join** (União à esquerda): todas as linhas do conjunto de dados esquerdo e somente as linhas do conjunto de dados direito que satisfazem a condição de união. 
   + **Right join** (União à direita): todas as linhas do conjunto de dados direito e somente as linhas do conjunto de dados esquerdo que satisfazem a condição de união.
   + **Outer join** (União externa): todas as linhas de ambos os conjuntos de dados.
   + **Left semi join** (semi à esquerda): todas as linhas do conjunto de dados esquerdo que têm uma correspondência no conjunto de dados direito com base na condição de união. 
   + **Left anti join** (anti à esquerda): todas as linhas do conjunto de dados esquerdo que não têm uma correspondência no conjunto de dados direito com base na condição de união. 

1. Na guia **Transform** (Transformação), no cabeçalho **Join conditions** (Condições de união), escolha **Add condition** (Adicionar condição). Escolha uma chave de propriedade de cada conjunto de dados para comparar. As chaves de propriedade no lado esquerdo do operador de comparação são referidas como o conjunto de dados esquerdo e as chaves de propriedade à direita são referidas como o conjunto de dados direito. 

   Para condições de união mais complexas, você pode adicionar chaves correspondentes adicionais escolhendo **Add condition** (Adicionar condição) mais de uma vez. Se você adicionar uma condição acidentalmente, pode escolher o ícone de exclusão (![\[\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/delete-icon-black.png)) para removê-la.

1. (Opcional) depois de configurar as propriedades do nó de transformação, você pode visualizar o esquema modificado dos dados escolhendo a guia **Output schema** (Esquema de saída) no painel de detalhes do nó. Na primeira vez que você escolher essa guia para qualquer nó em seu trabalho, você receberá uma solicitação para fornecer uma função do IAM para acessar os dados. Se você não tiver especificado uma função do IAM na guia **Job details** (Detalhes do trabalho), você receberá uma solicitação para inserir uma função do IAM aqui.

1. (Opcional) depois de configurar as propriedades do nó e da transformação, você pode previsualizar o conjunto de dados modificado escolhendo a guia **Data preview** (Previsualização de dados) no painel de detalhes do nó. Na primeira vez que você escolher essa guia para qualquer nó em seu trabalho, você receberá uma solicitação para fornecer uma função do IAM para acessar os dados. Há um custo associado ao uso desse recurso e o a cobrança começa assim que você fornece uma função do IAM.

Para obter um exemplo de esquema de saída de união, considere uma união entre dois conjuntos de dados com as seguintes chaves de propriedade:

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

A união está configurada para corresponder nas chaves `id` e `hire_date` usando o operador de comparação `=`. 

Como ambos os conjuntos de dados contêm as chaves `id` e `hire_date`, você escolhe **Resolve it** (Resolver) para adicionar automaticamente o prefixo **right** às chaves no conjunto de dados direito. 

As chaves no esquema de saída seriam:

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