Tous les produits
Search
Centre de documentation

MaxCompute:TRANSFORM_KEYS

Dernière mise à jour :Sep 22, 2026

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.policy au niveau de la session pour configurer la gestion des clés dupliquées. Par exemple, affectez la valeur exception au paramètre odps.sql.map.key.dedup.policy. Si ce paramètre n'est pas spécifié, la valeur par défaut last_win s'applique.

    Remarque

    Le 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.policy est utilisée.

  • input : obligatoire. Spécifie une map. Les éléments K1 et V de map<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 K2 indique 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);
Remarque

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.