Transformação Unpivot

OBSERVAÇÃO: as transformações fazem parte da linguagem subjacente não diretamente acessível aos usuários. Esse conteúdo é mantido apenas para fins de referência.

Reestrutura os dados mesclando uma ou mais colunas em colunas de chave e valor. As chaves são o nome das colunas de entrada, e as colunas de valores são os valores de célula provenientes da origem.

As linhas de dados são duplicadas uma vez para cada coluna de entrada.

A coluna unpivot pode ser aplicada a várias colunas na mesma transformação. Todas as colunas são reestruturadas nas mesmas colunas key e value. Quando esta transformação é aplicada em duas colunas, o número de linhas no conjunto de dados é duplicado.

Esta transformação é oposta à transformação pivot, que converte um conjunto de valores de coluna em colunas distintas. Consulte Transformação pivot.

Uso básico

Exemplo de uma ou várias colunas:

Especifique colunas únicas ou conjuntos de colunas separadas por vírgulas.

unpivot col: FirstName, MiddleInitial

Resultado: converte os valores das colunas FirstName e MiddleInitial em colunas key e value separadas.

Exemplo de intervalo de colunas:

Você também pode especificar intervalos de colunas usando o operador til (~):

unpivot col:Column1~Column20

Resultado: converte todos os valores das colunas entre Column1 e Column20 em colunas key e value.

Parâmetros

unpivot col: column_ref [groupEvery: int_num]

TokenObrigatório?Tipo de dadosDescrição
unpivotStransformaçãoNome da transformação.
colSstringNome da coluna ou colunas de origem
groupEveryNstringSe especificado, este parâmetro define o número de pares de chave-valor individuais a armazenar em cada coluna gerada. O padrão é 1.

Para mais informações sobre os padrões de sintaxe, consulte as Observações sobre a sintaxe da documentação da linguagem.

col

Identifica as colunas às quais aplicar a transformação. Especifique uma ou mais colunas.

Para especificar várias colunas, leve em conta estes fatores:

  • Os nomes de colunas distintas são separados por vírgulas. Os valores dos nomes de colunas diferenciam maiúsculas de minúsculas.
  • Se for o caso, vários valores podem ser especificados usando-se um til (~).

Observações sobre o uso:

Obrigatório?Tipo de dados
SimString (nome da coluna)

groupEvery

Especifica o número de colunas de pares de chave-valor de saída a serem produzidas após a reestruturação.

Este parâmetro opcional é usado para criar vários conjuntos de colunas de pares de chave-valor na saída. As colunas listadas no parâmetro col são colocadas sequencialmente em cada par de colunas de chave-valor de saída. Depois que todas as colunas de pares de chave-valor são preenchidas em um registro, a próxima coluna é colocada na primeira coluna de par de chave-valor do próximo registro.

Por padrão, esse valor é 1, o que significa que cada coluna especificada na transformação é renderizada em um novo registro em um único par de colunas de chave-valor.

Observações sobre o uso:

Obrigatório?Tipo de dados
NãoInteiro (positivo)

Exemplos

Exemplo: unpivot básico

Origem:

productNameproductColorproductSize
WhizbangvermelhoM
Whizbangvermelho, azulG
WhizbangverdeM
BangwhizvermelhoP
BangwhizazulM
BangwhizvermelhoP

Transformação:

Depois de criar um cabeçalho, se necessário, adicione a seguinte transformação:

unpivot col:productColor

Resultados:

productNameproductSizekeyvalue
WhizbangMproductColorvermelho
WhizbangGproductColorvermelho, azul
WhizbangMproductColorverde
BangwhizPproductColorvermelho
BangwhizMproductColorazul
BangwhizPproductColorvermelho

Estendidos:

Observe como cada instância de um valor gera uma linha separada, incluindo valores duplicados. No caso de um unpivot de uma coluna, esta transformação gera o mesmo número de linhas da origem.

  • Como o valor é tratado como uma string, o valor red, blue é tratado como um único valor.

Agora, edite a transformação que acabou de adicionar. Substitua-o pelo seguinte, que inclui a chave productSize como parte da transformação:

unpivot col:productColor,productSize

Resultados:

productNamekeyvalue
WhizbangproductColorvermelho
WhizbangproductSizeM
WhizbangproductColorvermelho, azul
WhizbangproductSizeG
WhizbangproductColorverde
WhizbangproductSizeM
BangwhizproductColorvermelho
BangwhizproductSizeP
BangwhizproductColorazul
BangwhizproductSizeM
BangwhizproductColorvermelho
BangwhizproductSizeP

As chaves de linha se alternam com base na ordem em que as colunas de origem são especificadas na transformação. Como a transformação especifica duas colunas, o número de pares de chave-valor é duplicado, o que gera um conjunto de dados com o dobro de linhas da origem.

Exemplo: pivot básico com groupEvery

A partir do exemplo anterior, modifique a transformação unpivot para ficar assim:

unpivot col:productColor,productSize groupEvery:2

Resultados:

productNamekey1value1key2value2
WhizbangproductColorvermelhoproductSizeM
WhizbangproductColorvermelho, azulproductSizeG
WhizbangproductColorverdeproductSizeM
BangwhizproductColorvermelhoproductSizeP
BangwhizproductColorazulproductSizeM
BangwhizproductColorvermelhoproductSizeP

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.