Transforme les clés de la map input à l'aide de la fonction func. Les valeurs de la map restent inchangées.
Syntaxe
map<K2, V> transform_keys([string <mapDupKeyPolicy>,] map<K1, V> <input>, function<K1, V, K2> <func>)
Paramètres
-
mapDupKeyPolicy : facultatif. Valeur de type STRING. Ce paramètre définit 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.
Définissez également le paramètre
odps.sql.map.key.dedup.policyau niveau de la session pour configurer la gestion des clés dupliquées. Par exemple, affectez la valeur exception au paramètreodps.sql.map.key.dedup.policy. Si ce paramètre n'est pas spécifié, la valeur par défaut last_win s'applique.RemarqueLe comportement de MaxCompute dépend du paramètre mapDupKeyPolicy. Si vous ne spécifiez pas mapDupKeyPolicy, la valeur du paramètre
odps.sql.map.key.dedup.policyest utilisée. input : obligatoire. Spécifie une map. Les éléments
K1etVdemap<K1, V>correspondent respectivement aux clés et aux valeurs de la map.func : obligatoire. Désigne la fonction intégrée, la fonction définie par l'utilisateur ou l'expression utilisée pour transformer les clés. Cette fonction ou expression accepte deux paramètres d'entrée correspondant aux clés et aux valeurs de input. L'élément
K2indique le type de données des clés dans la map renvoyée.
Valeur de retour
Renvoie des données de type MAP. Si l'une des nouvelles clés est null, une erreur est renvoyée.
Exemples
-- The return value is {-10:-20, 70:50, 71:101}.
select transform_keys(map(10, -20, 20, 50, -30, 101), (k, v) -> k + v);
-- No error is returned. The returned result depends on the order of the elements in the input map.
select transform_keys("last_win", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
-- An error is returned because duplicate keys exist.
select transform_keys("exception", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
Cet exemple utilise la combinaison d'un trait d'union et d'un chevron fermant (->). Pour plus d'informations sur l'utilisation de cette combinaison (->) dans les fonctions Lambda, consultez la rubrique Fonctions Lambda.
Fonctions associées
TRANSFORM_KEYS est une fonction de type complexe. Pour en savoir plus sur les fonctions de traitement des types de données complexes tels que ARRAY, MAP, STRUCT et JSON, consultez la rubrique Fonctions de type complexe.