Tous les produits
Search
Centre de documentation

MaxCompute:Fonctions

Dernière mise à jour :Aug 31, 2026

Créez des fonctions définies par l'utilisateur (UDF) et utilisez-les dans MaxCompute SQL.

Modèle d'objet

PyODPS représente les UDF à l'aide de deux types d'objets :

  • Objet d'entrée MaxCompute (o) : expose les méthodes au niveau du projet, notamment create_function(), delete_function(), get_function(), list_functions() et exist_function().

  • Objet Function : expose les méthodes au niveau de l'instance, à savoir update() et drop(), et contient des propriétés telles que class_type et resources.

Savoir quel objet possède quelle méthode vous permet d'écrire un code PyODPS correct : effectuez toujours les opérations au niveau du projet sur o et les opérations au niveau de l'instance sur un objet function préalablement récupéré.

Créer une UDF

Appelez create_function() sur l'objet d'entrée MaxCompute. Indiquez le nom de la fonction, la classe d'implémentation (class_type) et une liste de ressources.

Les exemples suivants créent une UDF qui référence une ressource dans le projet actuel et dans un autre projet :

# Reference a resource in the current project.
resource = o.get_resource('my_udf.py')
function = o.create_function('test_function', class_type='my_udf.Test', resources=[resource])
# Reference a resource in another project.
resource2 = o.get_resource('my_udf.py', project='another_project')
function2 = o.create_function('test_function2', class_type='my_udf.Test', resources=[resource2])

Répertorier les UDF

Appelez list_functions() sur l'objet d'entrée MaxCompute pour obtenir toutes les UDF d'un projet spécifique.

for func in o.list_functions():
    print(func.name)

Vérifier l'existence d'une UDF

Appelez exist_function() sur l'objet d'entrée MaxCompute.

o.exist_function('test_function')

Obtenir une UDF

Appelez get_function() sur l'objet d'entrée MaxCompute pour récupérer un objet function.

function = o.get_function('test_function')

Mettre à jour une UDF

Récupérez d'abord l'objet function, puis modifiez ses propriétés class_type et resources, et appelez update().

function = o.get_function('test_function')
new_resource = o.get_resource('my_udf2.py')
function.class_type = 'my_udf2.Test'
function.resources = [new_resource, ]
function.update()  # Update the function.

Supprimer une UDF

Deux méthodes sont disponibles :

  • delete_function() sur l'objet d'entrée : utilisez cette méthode si vous ne disposez que du nom de la fonction.

  • drop() sur l'objet function : utilisez cette méthode si vous détenez déjà un objet function.

# Delete by name.
o.delete_function('test_function')
# Delete using the function object.
function.drop()  # Call the drop() method if the function exists.