Todos los productos
Search
Centro de documentos

MaxCompute:MAP

Última actualización: Sep 22, 2026

Crea un mapa a partir de los pares clave-valor especificados.

Sintaxis

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

Parámetros

  • clave: obligatorio. Todas las claves deben tener el mismo tipo de datos después de las conversiones implícitas. Solo se admiten tipos de datos básicos.

  • value: obligatorio. Todos los values deben tener el mismo tipo de datos, incluso después de las conversiones implícitas. Se admiten todos los tipos de datos excepto DECIMAL.

Valor de retorno

Se devuelve un valor del tipo MAP.

Nota

Configure el parámetro odps.sql.map.key.dedup.policy en la sesión para especificar el método que se usa al procesar claves duplicadas. Valores válidos:

  • exception: se devuelve un error.

  • last_win: la última clave sobrescribe a la anterior.

Si no configura este parámetro, se utiliza el valor predeterminado last_win.

Ejemplos

  • Ejemplo 1: sin claves duplicadas. Cree un mapa con los datos de la tabla t_table, que contiene las columnas c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), and c5 (BIGINT). Datos de la tabla:

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

    Instrucción de ejemplo:

    -- 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} |
    +------+
  • Ejemplo 2: con claves duplicadas. Cree un mapa con los datos de la tabla t_table, que contiene las columnas c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), and c5 (BIGINT). Datos de la tabla:

    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

    Instrucción de ejemplo:

    -- 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} |
    +------+

Funciones relacionadas

MAP es una función de tipo complejo. Para obtener más información sobre las funciones que procesan datos de tipos complejos, como ARRAY, MAP, STRUCT y JSON, consulte Complex type functions.