Todos os produtos
Search
Central de documentação

MaxCompute:MAP

Última atualização: Sep 22, 2026

Cria um mapa com base nos pares chave-valor fornecidos.

Sintaxe

map(K, V) map(K <key1>, V <value1>, K <key2>, V <value2>[, ...])

Parâmetros

  • key: obrigatório. Todas as keys devem ter o mesmo tipo de dados após conversões implícitas. Somente tipos de dados básicos são compatíveis.

  • value: obrigatório. Todos os values devem ter o mesmo tipo de dados, mesmo após conversões implícitas. Tipos de dados diferentes de DECIMAL são compatíveis.

Valor de retorno

Retorna um valor do tipo MAP.

Nota

Configure o parâmetro odps.sql.map.key.dedup.policy no nível da sessão e especifique o método de processamento de chaves duplicadas. Valores válidos:

  • exception: Retorna um erro.

  • last_win: A chave posterior sobrescreve a anterior.

Caso você não configure esse parâmetro, o valor padrão last_win será utilizado.

Exemplos

  • Exemplo 1: Não há chaves duplicadas. Crie um mapa com base nos dados da tabela t_table, que contém as colunas c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), and c5 (BIGINT). Dados da tabela:

    +------------+----+----+------------+------------+
    | c1         | c2 | c3 | c4         | c5         |
    +------------+----+----+------------+------------+
    | 1000       | k11 | k21 | 86         | 15         |
    | 1001       | k12 | k22 | 97         | 2          |
    | 1002       | k13 | k23 | 99         | 1          |
    +------------+----+----+------------+------------+

    Exemplo de instrução:

    -- Define a map based on the key-value pairs between the c2 and c4 columns, and between the c3 and c5 columns. 
    select map(c2,c4,c3,c5) from t_table;
    -- The following result is returned: 
    +------+
    | _c0  |
    +------+
    | {k11:86, k21:15} |
    | {k12:97, k22:2} |
    | {k13:99, k23:1} |
    +------+
  • Exemplo 2: Há chaves duplicadas. Crie um mapa com base nos dados da tabela t_table, que contém as colunas c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), and c5 (BIGINT). Dados da tabela:

    1000,'k11','k11',86,15
    1001,'k12','k22',97,2
    1002,'k13','k23',99,1
    1003,'k13','k24',100,1
    1004,'k12','k25',95,1

    Exemplo de instrução:

    -- Define a map based on the key-value pairs between the c2 and c4 columns, and between the c3 and c5 columns. 
    select map(c2,c4,c3,c5) from t_table;
    -- The following result is returned: 
    +------+
    | _c0  |
    +------+
    | {'k11':15} |
    | {'k12':97, 'k22':2} |
    | {'k13':99, 'k23':1} |
    | {'k13':100, 'k24':1} |
    | {'k12':95, 'k25':1} |
    +------+

Funções relacionadas

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