Todos os produtos
Search
Central de documentação

MaxCompute:Funções

Última atualização: Aug 27, 2026

Crie funções definidas pelo usuário (UDFs) e utilize-as no MaxCompute SQL.

Modelo de objetos

O PyODPS representa UDFs com dois tipos de objetos:

  • Objeto de entrada do MaxCompute (o): expõe métodos no nível do projeto — create_function(), delete_function(), get_function(), list_functions() e exist_function().

  • Objeto de função: expõe métodos no nível da instância — update() e drop() — e armazena propriedades como class_type e resources.

Entender qual objeto possui cada método ajuda a escrever código PyODPS correto: sempre chame operações de nível de projeto em o e execute operações de nível de instância em um objeto de função obtido previamente.

Criar uma UDF

Chame create_function() no objeto de entrada do MaxCompute. Forneça o nome da função, a classe de implementação (class_type) e uma lista de recursos.

Os exemplos a seguir criam uma UDF que referencia um recurso no projeto atual e em outro projeto:

# 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])

Listar UDFs

Para obter todas as UDFs de um projeto específico, chame list_functions() no objeto de entrada do MaxCompute.

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

Verificar se uma UDF existe

Chame exist_function() no objeto de entrada do MaxCompute.

o.exist_function('test_function')

Obter uma UDF

Para recuperar um objeto de função, chame get_function() no objeto de entrada do MaxCompute.

function = o.get_function('test_function')

Atualizar uma UDF

Obtenha primeiro o objeto de função, modifique suas propriedades class_type e resources e chame 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.

Excluir uma UDF

Dois métodos estão disponíveis:

  • delete_function() no objeto de entrada: use quando você tiver apenas o nome da função.

  • drop() no objeto de função: use quando você já tiver uma referência ao objeto de função.

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