Tous les produits
Search
Centre de documentation

MaxCompute:MAP

Dernière mise à jour :Sep 22, 2026

Crée une map à partir de paires clé-valeur données.

Syntaxe

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

Paramètres

  • key : obligatoire. Toutes les clés doivent être du même type de données après les conversions implicites. Seuls les types de données de base sont pris en charge.

  • value : obligatoire. Toutes les valeurs doivent être du même type de données, même après les conversions implicites. Les types de données autres que DECIMAL sont pris en charge.

Valeur de retour

Renvoie une valeur de type MAP.

Remarque

Configurez le paramètre odps.sql.map.key.dedup.policy au niveau de la session pour spécifier la méthode de traitement des clés en double. Valeurs possibles :

  • exception : renvoie une erreur.

  • last_win : la dernière clé écrase la précédente.

Si vous ne configurez pas ce paramètre, la valeur par défaut last_win est utilisée.

Exemples

  • Exemple 1 : aucune clé en double n'existe. Créez une map à partir des données de la table t_table qui contient les colonnes c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), et c5 (BIGINT). Données de la table :

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

    Exemple d'instruction :

    -- 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} |
    +------+
  • Exemple 2 : des clés en double existent. Créez une map à partir des données de la table t_table qui contient les colonnes c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), et c5 (BIGINT). Données de la table :

    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

    Exemple d'instruction :

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

Fonctions associées

MAP est une fonction de type complexe. Pour plus d'informations sur les fonctions utilisées pour traiter les données de types complexes, telles que ARRAY, MAP, STRUCT et JSON, consultez la section Fonctions de type complexe.