Todos os produtos
Search
Central de documentação

MaxCompute:Desenvolver UDFs Java com o IntelliJ IDEA

Última atualização: Aug 21, 2026

O IntelliJ IDEA é um ambiente de desenvolvimento integrado (IDE) para Java usado para criar programas Java rapidamente. Este tópico demonstra como usar o MaxCompute Studio, um plug-in para o IntelliJ IDEA, para desenvolver uma função definida pelo usuário (UDF) Java que converte letras maiúsculas em minúsculas.

Pré-requisitos

Certifique-se de ter concluído as seguintes preparações no IntelliJ IDEA:

  1. Instale o MaxCompute Studio

  2. Crie uma conexão de projeto do MaxCompute

  3. Crie um módulo Java do MaxCompute

Procedimento

  1. Escreva uma UDF Java.

    1. Na área Project, clique com o botão direito do mouse no diretório source do módulo (ou seja, src > main > java) e selecione New > MaxCompute Java.

    2. Na caixa de diálogo Create new MaxCompute java class, clique em UDF, insira um Name e pressione Enter. Por exemplo, o nome da classe Java é Lower.

      O campo Name especifica o nome da classe Java do MaxCompute. Caso não tenha criado um pacote, insira packagename.classname para gerar um pacote automaticamente.

    3. No editor de código, insira o seguinte código.

      O código abaixo é um exemplo da UDF.

      package <packagename>;
      import com.aliyun.odps.udf.UDF;
      public final class Lower extends UDF {
          public String evaluate(String s) {
              if (s == null) { 
                 return null; 
              }
                 return s.toLowerCase();
          }
      }
  2. Depure a UDF para garantir sua execução correta.

    1. No diretório java, clique com o botão direito do mouse na classe Java e selecione Execute.

    2. Na caixa de diálogo Run/Debug Configurations, configure os parâmetros de execução.

      • MaxCompute project: projeto MaxCompute onde a UDF será executada. Selecione local para executar a UDF localmente.

      • MaxCompute table: nome da tabela do MaxCompute a ser usada.

      • Table columns: colunas da tabela do MaxCompute a serem usadas.

    3. Clique em OK. O resultado aparece no código a seguir.

      package wd_udf;
      import com.aliyun.odps.udf.UDF;
      public class Lower extends UDF {
      
          public String evaluate(String s) {
              if ("null".equals(s) ) {
                  return null;
              }
              return s.toLowerCase();
          }
      }
  3. Registre a UDF do MaxCompute.

    1. Clique com o botão direito do mouse no arquivo Java da UDF e selecione Deploy to server....

    2. Na caixa de diálogo Package a jar, envie resource and register function, configure os seguintes parâmetros.

      • MaxCompute project: projeto MaxCompute que contém a UDF. Mantenha o valor padrão, pois o plug-in seleciona automaticamente o projeto atual.

      • Resource file: caminho do arquivo de recurso necessário para a UDF. Mantenha o valor padrão.

      • Resource name: recurso necessário para a UDF. Mantenha o valor padrão.

      • Function name: nome usado para chamar a UDF em instruções SQL. Por exemplo, Lower_test.

    3. Clique em OK para concluir o registro da UDF.

  4. Chame a UDF.

    No painel de navegação à esquerda, clique em Project Explorer. Clique com o botão direito do mouse no projeto MaxCompute desejado e selecione Open in Console. No console, insira uma instrução SQL para chamar a UDF e pressione Enter.

    package com.aliyun.odps.udf.example;
    import com.aliyun.odps.udf.UDF;
    public final class Lower extends UDF {
        public String evaluate(String s) {
            if (s == null) {
                return null;
            }
            return s.toLowerCase();
        }
    }

    Execute o seguinte comando no console:

    select lower_test('ABC');

    A instrução SQL a seguir é um exemplo.

    select Lower_test('ALIYUN');

    O resultado mostra que a UDF Java Lower_test está pronta para uso.

    +------------+
    | _c0        |
    +------------+
    | aliyun     |
    +------------+
    1 records (at most 10000 supported) fetched by instance tunnel.