Todos os produtos
Search
Central de documentação

MaxCompute:TRANSFORM_KEYS

Última atualização: Jun 26, 2026

Transforma o objeto MAP input, mantém os valores inalterados e calcula novas chaves por meio da função func.

Formato do comando

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

Descrição dos parâmetros

  • mapDupKeyPolicy: opcional. Tipo STRING. Define a estratégia de tratamento para chaves duplicadas. Valores válidos:

    • exception: retorna erro se houver chaves duplicadas.

    • last_win: substitui o valor anterior pelo posterior em caso de chaves duplicadas.

    Você também pode definir esse parâmetro no nível de sessão com odps.sql.map.key.dedup.policy. Exemplo: set odps.sql.map.key.dedup.policy=exception;. O valor padrão é last_win.

    Nota

    O MaxCompute prioriza o valor de mapDupKeyPolicy definido na função. Se a função não configurar mapDupKeyPolicy, prevalece o valor do parâmetro odps.sql.map.key.dedup.policy.

  • input: obrigatório. Objeto MAP. Em map<K1, V>, K1 e V representam, respectivamente, a chave e o valor do objeto MAP.

  • func: obrigatório. Função de transformação (nativa ou definida pelo usuário) ou expressão. Os dois parâmetros de entrada correspondem à chave e ao valor de input. K2 indica o tipo da nova chave no MAP resultante.

Valor de retorno

Retorna um valor do tipo MAP. Se a nova chave calculada for NULL, a função retornará erro.

Exemplos de uso

--返回{-10:-20, 70:50, 71:101}。
select transform_keys(map(10, -20, 20, 50, -30, 101), (k, v) -> k + v);
--不报错,返回的结果依赖于输入map中元素的顺序。
select transform_keys("last_win", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
--因出现重复Key,返回报错。
select transform_keys("exception", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
Nota

Os exemplos acima usam o operador ->. Para obter mais informações sobre funções Lambda e o operador ->, consulte Lambda functions.

Funções relacionadas

TRANSFORM_KEYS é uma função de tipo complexo. Para consultar outras funções de processamento de dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), veja Complex type functions.