Todos os produtos
Search
Central de documentação

MaxCompute:CREATE FUNCTION

Última atualização: Jun 26, 2026

Cria uma função definida pelo usuário (UDF) em um projeto do MaxCompute.

Pré-requisitos

Antes de começar, verifique se você:

  • Adicionou os recursos necessários ao seu projeto do MaxCompute com o comando ADD JAR. Para mais informações, consulte ADD JAR.

Limitações

  • Os nomes das funções devem ser exclusivos no projeto. Não crie uma função com o mesmo nome de outra já existente.

  • As UDFs não podem sobrescrever funções integradas do MaxCompute. Apenas o proprietário do projeto pode usar UDFs para essa finalidade. Se uma UDF sobrescrever uma função integrada, o Logview do job exibirá um aviso na seção Summary após a execução da instrução SQL.

Sintaxe

CREATE FUNCTION <function_name> AS <'package_to_class'> USING <'resource_list'>;

Parâmetros

Parâmetro

Obrigatório

Descrição

function_name

Sim

Nome da UDF a criar. Deve ser exclusivo no projeto.

package_to_class

Sim

Classe da UDF. Diferencia maiúsculas de minúsculas e deve estar entre aspas simples ('). Para UDFs Java, especifique o nome totalmente qualificado da classe, do pacote de nível superior até a classe da UDF. Para UDFs Python, use o formato <Python_script_name>.<Class_name>.

resource_list

Sim

Recursos usados pela UDF. Devem estar entre aspas simples ('). Separe vários recursos por vírgula (,). Para referenciar um recurso de outro projeto, use o formato <project_name>/resources/<resource_name>.

Observações sobre package_to_class para UDFs Python

O nome do script Python refere-se ao nome subjacente do recurso que o identifica exclusivamente. Por exemplo, se você carregar um recurso como pyudf_test.py e depois renomeá-lo para PYUDF_TEST.py no DataStudio ou substituí-lo pelo cliente MaxCompute, o nome subjacente do recurso permanecerá pyudf_test.py. Portanto, ao registrar a UDF, o nome da classe deve ser pyudf_test.SampleUDF. Execute LIST RESOURCES; para visualizar os nomes subjacentes de todos os recursos.

Observações sobre resource_list

  • A lista deve incluir os recursos que contêm o código da UDF. Certifique-se de que esses recursos já foram carregados no MaxCompute.

  • Se a UDF chamar a Distributed Cache API para ler arquivos de recurso, inclua também esses arquivos na lista.

  • Se o schema estiver habilitado e for necessário usar recursos de outros projetos, consulte Trabalhar com objetos em um schema.

Exemplos

Criar uma UDF Java

O exemplo abaixo cria a função my_lower. A classe da UDF Java org.alidata.odps.udf.examples.Lower está em my_lower.jar.

CREATE FUNCTION my_lower AS 'org.alidata.odps.udf.examples.Lower' USING 'my_lower.jar';

Criar uma UDF Python de outro projeto

Este exemplo cria a função my_lower. A classe da UDF Python MyLower está definida em pyudf_test.py, no projeto test_project.

CREATE FUNCTION my_lower as 'pyudf_test.MyLower' using 'test_project/resources/pyudf_test.py';

Criar uma UDF com múltiplas dependências de recursos

O exemplo a seguir cria a função test_udtf. A classe da UDF Java com.aliyun.odps.examples.udf.UDTFResource está em udtfexample1.jar. A função também depende de um recurso FILE (file_resource.txt), um recurso Table (table_resource1) e um recurso Archive (test_archive.zip).

CREATE FUNCTION test_udtf AS 'com.aliyun.odps.examples.udf.UDTFResource' USING 'udtfexample1.jar, file_resource.txt, table_resource1, test_archive.zip';

Próximos passos

  • FUNCTION: Crie uma função SQL temporária aplicável apenas ao script SQL atual, sem armazenamento no sistema de metadados do MaxCompute.

  • DROP FUNCTION: Exclua uma UDF existente de um projeto do MaxCompute.

  • DELETE FUNCTION: Exclua uma função com o método delete_function() de um objeto de entrada do MaxCompute.

  • DESC FUNCTION: Visualize detalhes de uma UDF, como nome, proprietário, data de criação, nome da classe e lista de recursos.

  • LIST FUNCTIONS: Liste todas as UDFs em um projeto do MaxCompute.

  • UPDATE FUNCTION: Atualize uma UDF com o método update do MaxCompute.