Função KEYS

Os valores de chave de uma coluna de tipo de dados Objeto são extraídos e armazenados na matriz de valores de String.

Uso básico

Exemplo de referência de coluna:

derive type:single value:KEYS('object1') as:'objKeys'

Resultado: é gerada uma nova coluna objKeys contendo a matriz de todas as chaves encontradas na chave-valor Objetos que está na coluna object1.

Exemplo de referência literal de matriz:

Veja o exemplo abaixo.

Sintaxe

derive type:single value:KEYS(obj_col)

ArgumentoObrigatório?Tipo de dadosDescrição
obj_colSString ou ObjetoNome da coluna ou literal Objeto cujas chaves precisam ser extraídas para uma matriz

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

obj_col

Literal de objeto ou nome da coluna Objeto cujas chaves você quer extrair para uma matriz.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimLiteral de objeto ou referência de colunamyObj

Exemplos

Exemplo: exemplo de chaves básicas

Fonte:

O conjunto de dados contém blocos de configuração para recursos individuais. Esses blocos de exemplo são do tipo Objeto.

A formatação do código foi aplicada aos dados do Objeto para melhorar a legibilidade.

FeatureNameConfiguration
Whiz Widget

{
 "enabled": "true",
 "maxRows": "1000",
 "maxCols": "100"
}
Magic Button

{
 "enabled": "false",
 "startDirectory": "/home",
 "maxDepth": "15"
}
Happy Path Finder

{
 "enabled": "true"
}

Transformação:

A transformação a seguir extrai os valores de chave dos dados do Objeto na coluna Configuration.

derive type:single value: KEYS(Configuration) as: 'keys_Configuration'

Resultados:

A coluna keys_Configuration contém as matrizes dos valores das chaves.

FeatureNameConfigurationkeys_Configuration
Whiz Widget

{
 "enabled": "true",
 "maxRows": "1000",
 "maxCols": "100"
}

["enabled","maxRows","maxCols"]
Magic Button

{
 "enabled": "false",
 "startDirectory": "/home",
 "maxDepth": "15"
}

["enabled","startDirectory","maxDepth"]
Happy Path Finder

{
 "enabled": "true"
}

["enabled"]

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"]["tartaruga", "preto", "algodão", "M, G, GG","fora de estoque","acolchoado"]

{
  "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.