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.
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_tablepossède les colonnesc1 bigint, c2 string, c3 string, c4 bigint, c5 bigintet 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_tablepossède les colonnesc1 bigint, c2 string, c3 string, c4 bigint, c5 bigintet 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,1Exé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.