Todos os produtos
Search
Central de documentação

MaxCompute:TRANSFORM_KEYS

Última atualização: Sep 22, 2026

Transforma as chaves do Map input por meio da função func. Os valores do mapa permanecem inalterados.

Sintaxe

map<K2, V> transform_keys([string <mapDupKeyPolicy>,] map<K1, V> <input>, function<K1, V, K2> <func>)

Parâmetros

  • mapDupKeyPolicy: opcional. Valor do tipo STRING. Este parâmetro define o método de processamento de chaves duplicadas. Valores válidos:

    • exception: Retorna um erro.

    • last_win: A chave posterior sobrescreve a anterior.

    Especifique também o parâmetro odps.sql.map.key.dedup.policy no nível da sessão e configure o método usado para processar chaves duplicadas. Por exemplo, defina o parâmetro odps.sql.map.key.dedup.policy como exception. Caso você não especifique esse parâmetro, o sistema utiliza o valor padrão last_win.

    Nota

    O comportamento do MaxCompute é determinado com base no mapDupKeyPolicy. Se você não especificar o mapDupKeyPolicy, o sistema usa o valor de odps.sql.map.key.dedup.policy.

  • input: obrigatório. Este parâmetro define um mapa. K1 e V em map<K1, V> representam as chaves e os valores de um mapa.

  • func: obrigatório. Este parâmetro define a função integrada, a função definida pelo usuário ou a expressão usada para transformar as chaves. A função ou expressão recebe dois parâmetros de entrada, correspondentes às chaves e aos valores em input. K2 define o tipo de dados das chaves no mapa retornado.

Valor de retorno

A função retorna dados do tipo MAP. Se alguma das novas chaves for nula, o sistema retorna um erro.

Exemplos

-- The return value is {-10:-20, 70:50, 71:101}. 
select transform_keys(map(10, -20, 20, 50, -30, 101), (k, v) -> k + v);
-- No error is returned. The returned result depends on the order of the elements in the input map. 
select transform_keys("last_win", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
-- An error is returned because duplicate keys exist. 
select transform_keys("exception", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
Nota

Neste exemplo, utiliza-se a combinação de um hífen e um sinal de maior que (->). Para obter mais informações sobre como usar a combinação de um hífen e um sinal de maior que (->) em funções Lambda, consulte Lambda functions.

Funções relacionadas

TRANSFORM_KEYS é uma função de tipo complexo. Para obter mais informações sobre as funções usadas para processar dados de tipos complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.