Função ARRAYSTOMAP

Combina uma matriz contendo chaves e outra matriz contendo valores em um Objeto de pares chave/valor.
  • Esta função se aplica apenas a duas entradas.
  • As entradas podem ser literais de matriz, referências de coluna ou funções que retornam matrizes.

Se o número de elementos de chave for maior que o número de elementos de valor, os valores nulos serão gerados para os valores não encontrados no Objeto de saída. Se o número de elementos de valor for maior, o valor DEFAULT_KEY (terceiro parâmetro) será aplicado.

Uso básico

Exemplo de referência literal de matriz:

derive type:single value:ARRAYSTOMAP(["A","B"],["1","2","3"] ) as:'myMap'

Saída: gera um Objeto que associa chaves da primeira matriz a valores da segunda matriz.

Exemplo de referência de coluna:

derive type:single value:ARRAYSTOMAP(array1,array2, 'extraProps') as:'array2mapped'

Saída: gera uma nova coluna array2mapped com um Objeto emparelhando os elementos das matrizes como pares de chave-valor. Todos os valores extras em array2 são atribuídos à chave extraProps.

Exemplo de referência de função:

derive type:single value:ARRAYSTOMAP(array1,concat([array2,array3])) as:'array2map'

Saída: gera uma nova coluna array2map com um Objeto que emparelha os elementos de array1, além da matriz criada pela concatenação de array2 e array3.

Sintaxe

derive type:single value:ARRAYSTOMAP(array_keys,array_values, ['DEFAULT KEY'])

ArgumentoObrigatório?Tipo de dadosDescrição
array_keysSstring ou matrizNome da coluna, do literal de matriz ou da função que retorna uma matriz cujos elementos são as chaves para o Objeto gerado
array_valuesSstring ou matrizNome da coluna, do literal de matriz ou da função que retorna uma matriz contendo os valores para o Objeto gerado
DEFAULT_KEYNliteral de stringTodos os valores extras são atribuídos a esta chave especificada

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

array_keys

Nome da coluna de matriz, do literal de matriz ou da função que retorna uma matriz contendo elementos que você quer usar como as chaves do Objeto.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString (referência de coluna, função que retorna uma matriz) ou literal de matrizmyKeys

array_values

Nome da coluna de matriz, do literal de matriz ou da função que retorna uma matriz contendo elementos que você quer usar como os valores do Objeto.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString (referência de coluna, função que retorna uma matriz) ou literal de matrizmyValues

DEFAULT KEY

Se houver elementos extras na segunda matriz, eles serão atribuídos à chave definida por esse parâmetro.

Notas de uso:

Obrigatório?Tipo de dadosValor de exemplo
NãoLiteral de string'extraProperties'

Exemplos

Exemplo: criar um objeto de propriedades do produto

Fonte:

O conjunto de dados contém os dados principais do produto com as respectivas propriedades armazenadas em duas matrizes de chaves e valores.

IDProdCategoriaProdNomeProdChavesProdPropriedadesProd
S001CamisasCamiseta de gola comum["tipo", "cor", "tecido", "tamanhos"]["comum", "azul", "algodão", "P, M, G", "em estoque", "acolchoado"]
S002CamisasCamiseta de gola V["tipo", "cor", "tecido", "tamanhos"]["gola v, "branco", "mista", "P, M, G, GG", "em estoque", "desconto: temporada"]
S003CamisasRegata["tipo", "cor", "tecido", "tamanhos"]["regata", "vermelho", "malha", "PP, P, M", "desconto: liquidação", "em estoque"]
S004CamisasGola alta["tipo", "cor", "tecido", "tamanhos"]["turtle","black","cotton","M,L,XL","out of stock","padded"]

Transformação:

Quando os dados acima forem carregados na página "Transformer", talvez seja necessário limpar as duas colunas da matriz.

Usando a transformação a seguir, você pode mapear o primeiro elemento da primeira matriz como uma chave para o primeiro elemento da segunda, que é o valor dela. Talvez você perceba que o número de chaves e o número de valores não são consistentes. Para os elementos extras na segunda matriz, é usada a chave padrão de ProdMiscProperties:

derive type:single value: ARRAYSTOMAP(ProdProperties, ProdValues, 'ProdMiscProperties') as: 'prodPropertyMap'

Siga as etapas a seguir para gerar uma nova versão das chaves:

drop col:ProdKeys

derive type:single value:KEYS(prodPropertyMap) as:'ProdKeys'

Resultados:

IDProdCategoriaProdNomeProdChavesProdPropriedadesProdprodPropertyMap
S001CamisasCamiseta de gola comum["tipo", "cor", "tecido", "tamanhos", "ProdMiscProperties"]["comum", "azul", "algodão", "P, M, G", "em estoque", "acolchoado"]

{
  "type": [ "crew" ],
  "color": [ "blue" ],
  "fabric": [ "cotton" ],
  "sizes": [ "S,M,L" ],
  "ProdMiscProperties": [ "in stock", "padded" ] }
S002CamisasCamiseta de gola V["tipo", "cor", "tecido", "tamanhos", "ProdMiscProperties"]["gola v, "branco", "mista", "P, M, G, GG", "em estoque", "desconto: temporada"]

{
  "type": [ "v-neck" ],
  "color": [ "white" ],
  "fabric": [ "blend" ],
  "sizes": [ "S,M,L,XL" ],
  "ProdMiscProperties": [ "in stock", "discount - seasonal" ] }
S003CamisasRegata["tipo", "cor", "tecido", "tamanhos", "ProdMiscProperties"]["regata", "vermelho", "malha", "PP, P, M", "desconto: liquidação", "em estoque"]

{
  "type": [ "tank" ],
  "color": [ "red" ],
  "fabric": [ "mesh" ],
  "sizes": [ "XS,S,M" ],
  "ProdMiscProperties": [ "discount - clearance", "in stock" ] }
S004CamisasGola alta["tipo", "cor", "tecido", "tamanhos", "ProdMiscProperties"]["turtle","black","cotton","M,L,XL","out of stock","padded"]

{
  "type": [ "turtle" ],
  "color": [ "black" ],
  "fabric": [ "cotton" ],
  "sizes": [ "M,L,XL" ],
  "ProdMiscProperties": [ "out of stock", "padded" ] }

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.