Tous les produits
Search
Centre de documentation

MaxCompute:MAP

Dernière mise à jour :Aug 10, 2026

Génère un MAP à partir de paires clé-valeur.

Syntaxe

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

Paramètres

  • key : obligatoire. Toutes les clés key doivent être du même type (y compris après conversion implicite) et appartenir à un type de base.

  • value : obligatoire. Toutes les valeurs value doivent être du même type (y compris après conversion implicite). Tous les types de données sont pris en charge, à l'exception du type Decimal.

Valeur de retour

Renvoie une valeur de type MAP.

Remarque

Configurez le comportement en cas de clés dupliquées au niveau de la session via le paramètre odps.sql.map.key.dedup.policy. Les valeurs possibles sont les suivantes :

  • exception : renvoie une erreur si des clés en double sont détectées.

  • last_win : si des clés en double existent, la dernière valeur écrase les précédentes.

La valeur par défaut de ce paramètre est last_win lorsqu'il n'est pas défini explicitement.

Exemples

  • Exemple 1 : aucune clé dupliquée. Supposons que la table t_table possède les colonnes c1 bigint, c2 string, c3 string, c4 bigint, c5 bigint et contienne les données suivantes.

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

    Exécutez la commande suivante.

    --将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} |
    +------+
  • Exemple 2 : présence de clés dupliquées. Supposons que la table t_table possède les colonnes c1 bigint, c2 string, c3 string, c4 bigint, c5 bigint et contienne les données suivantes.

    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

    Exécutez la commande suivante.

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

Fonctions associées

La fonction MAP fait partie des fonctions relatives aux types complexes. Pour plus d'informations sur le traitement des données de types complexes (telles que ARRAY, MAP, STRUCT et JSON), consultez la rubrique Fonctions de type complexe.