Todos os produtos
Search
Central de documentação

MaxCompute:MAP

Última atualização: Jun 26, 2026

Gera um MAP a partir de pares chave-valor fornecidos.

Formato do comando

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

Descrição dos parâmetros

  • key: obrigatório. Todas as key devem ter o mesmo tipo (inclusive após conversão implícita) e ser de tipos primitivos.

  • value: obrigatório. Todos os value devem ter o mesmo tipo (inclusive após conversão implícita). A função aceita todos os tipos de dados, exceto Decimal.

Valor de retorno

Retorna um valor do tipo MAP.

Nota

No nível da sessão, defina o parâmetro odps.sql.map.key.dedup.policy para especificar como tratar chaves duplicadas. Os valores válidos são:

  • exception: retorna um erro se houver chaves duplicadas.

  • last_win: se houver chaves duplicadas, o último valor substitui os anteriores.

Se não definido, o valor padrão desse parâmetro é last_win.

Exemplos de uso

  • Exemplo 1: sem chaves duplicadas. Considere a tabela t_table com as colunas c1 bigint, c2 string, c3 string, c4 bigint, c5 bigint e os seguintes dados:

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

    Execute o seguinte comando:

    --将c2、c4,c3、c5组成MAP。
    select map(c2,c4,c3,c5) from t_table;
    --返回结果如下。
    +------+
    | _c0  |
    +------+
    | {k11:86, k21:15} |
    | {k12:97, k22:2} |
    | {k13:99, k23:1} |
    +------+
  • Exemplo 2: com chaves duplicadas. Suponha que a tabela t_table tenha as colunas c1 bigint, c2 string, c3 string, c4 bigint, c5 bigint e contenha os dados abaixo:

    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

    Execute o comando a seguir:

    --将c2、c4,c3、c5组成MAP。
    select map(c2,c4,c3,c5) from t_table;
    --返回结果如下。
    +------+
    | _c0  |
    +------+
    | {'k11':15} |
    | {'k12':97, 'k22':2} |
    | {'k13':99, 'k23':1} |
    | {'k13':100, 'k24':1} |
    | {'k12':95, 'k25':1} |
    +------+

Funções relacionadas

A função MAP integra as funções de tipos complexos. Para outras funções de processamento de dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), consulte Funções de tipos complexos.