Tous les produits
Search
Centre de documentation

MaxCompute:TRANSFORM_KEYS

Dernière mise à jour :Aug 10, 2026

Transforme les clés d’un objet MAP input à l’aide de la fonction func, tout en conservant les valeurs inchangées.

Syntaxe

map<K2, V> transform_keys([string <mapDupKeyPolicy>,] map<K1, V> <input>, function<K1, V, K2> <func>)

Paramètres

  • mapDupKeyPolicy : facultatif. Type STRING. Définit le comportement en cas de duplication de clé. Valeurs possibles :

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

    • last_win : en cas de clés dupliquées, la dernière valeur écrase les précédentes.

    Vous pouvez également définir ce paramètre au niveau de la session via le paramètre odps.sql.map.key.dedup.policy, par exemple set odps.sql.map.key.dedup.policy=exception;. La valeur par défaut est last_win si le paramètre n’est pas défini.

    Remarque

    MaxCompute privilégie la valeur du paramètre mapDupKeyPolicy spécifié dans la fonction. Si ce paramètre n’est pas configuré dans la fonction, MaxCompute utilise la valeur du paramètre odps.sql.map.key.dedup.policy.

  • input : obligatoire. Objet MAP. Dans l’expression map<K1, V>, K1 et V représentent respectivement les clés et les valeurs de l’objet MAP.

  • func : obligatoire. Fonction de transformation (fonction intégrée ou personnalisée) ou expression. Ses deux paramètres d’entrée correspondent respectivement à la clé et à la valeur de input. K2 désigne le type de clé du nouveau MAP.

Valeur de retour

Renvoie un objet de type MAP. Une erreur survient si la nouvelle clé calculée est NULL.

Exemples

--返回{-10:-20, 70:50, 71:101}。
select transform_keys(map(10, -20, 20, 50, -30, 101), (k, v) -> k + v);
--不报错,返回的结果依赖于输入map中元素的顺序。
select transform_keys("last_win", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
--因出现重复Key,返回报错。
select transform_keys("exception", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
Remarque

Ces exemples utilisent l’opérateur ->. Pour plus d’informations sur les fonctions Lambda utilisant ->, consultez la rubrique Lambda functions.

Fonctions associées

La fonction TRANSFORM_KEYS fait partie des fonctions de types complexes. Pour découvrir d’autres fonctions dédiées au traitement des données de types complexes (telles que ARRAY, MAP, STRUCT et JSON), reportez-vous à la rubrique Complex type functions.