Todos os produtos
Search
Central de documentação

DataWorks:Uso de pacotes de terceiros em um nó PyODPS

Última atualização: Jun 27, 2026

Quando os recursos nativos do PyODPS não atendem a requisitos de negócios complexos, talvez seja necessário reutilizar código Python ou usar bibliotecas open-source. O DataWorks oferece duas soluções: carregar scripts personalizados por referência de recurso ou integrar pacotes de terceiros usando imagens personalizadas ou o O&M Assistant. Este tópico descreve como chamar scripts Python personalizados ou instalar e usar pacotes open-source de terceiros em nós PyODPS do DataWorks para estender as capacidades de processamento de dados.

Seleção rápida

Escolha uma abordagem com base no seu ambiente e nos seus requisitos.

Cenário

Tipo de grupo de recursos

Solução

Uso de pacotes open-source de terceiros

grupo de recursos serverless

Instalar pacotes open-source usando uma imagem personalizada

grupo de recursos exclusivo para agendamento

Instalar pacotes open-source usando o O&M Assistant

Uso apenas de arquivos de script .py personalizados

grupo de recursos serverless / grupo de recursos exclusivo para agendamento

Referenciar um recurso Python personalizado

A figura a seguir apresenta os principais fluxos de trabalho de cada solução.

Pré-requisitos

Antes de começar, entenda os dois conceitos-chave a seguir para escolher o método de configuração correto.

Conceitos-chave

  1. Tipo de nó: PyODPS 2 vs. PyODPS 3

    • PyODPS 2: Baseado em um ambiente Python 2.7.

    • PyODPS 3: Baseado em um ambiente Python 3.7+.

    • Recomendação: Recomendamos fortemente o uso do PyODPS 3, pois o suporte oficial ao Python 2 foi encerrado. Este tópico usa o PyODPS 3 como exemplo principal.

  2. Tipo de grupo de recursos: grupo de recursos serverless vs. grupo de recursos exclusivo para agendamento

    • Grupo de recursos serverless (Recomendado): Este grupo de recursos é elástico e livre de manutenção. Ele permite usar imagens personalizadas para gerenciar pacotes de terceiros.

    • Grupo de recursos exclusivo para agendamento (Não recomendado): Esta é uma solução legada. É necessário adquirir e manter servidores ECS, e os recursos não escalam elasticamente. O uso do O&M Assistant para instalar dependências tem diversas limitações e pode corromper o ambiente.

Identificar o tipo de grupo de recursos

No console do DataWorks, acesse a página Workspace Details do seu workspace. Na página Resource Group, verifique o tipo de grupo de recursos associado ao workspace.

  • Se o tipo for General-purpose, você usa um grupo de recursos serverless.

  • Se o tipo for Data Scheduling, você usa um grupo de recursos exclusivo para agendamento.

Instalação de pacotes open-source com imagem personalizada

Importante

Este método aplica-se a grupos de recursos serverless.

Esta seção fornece um exemplo completo de criação de um ambiente personalizado que inclui o pacote pendulum. Em seguida, use um nó PyODPS 3 para chamar esse pacote e recuperar e formatar a hora atual de um fuso horário específico.

Etapa 1: Criar uma imagem personalizada contendo a biblioteca pendulum

Imagens personalizadas definem o ambiente de execução de um grupo de recursos serverless.

  1. Faça login no console do DataWorks e clique em Image Management no painel de navegação à esquerda.

  2. Acesse a aba Custom Image.

  3. Clique em Create Image no canto superior esquerdo. Na página Create, configure os seguintes parâmetros principais:

    Parâmetro

    Descrição

    Image Name

    Insira um nome para a imagem personalizada, por exemplo, pyodps3_with_pendulum.

    Reference Type

    Selecione DataWorks Official Image.

    Image Name/ID

    Na lista suspensa, selecione a imagem oficial do DataWorks dataworks_pyodps_task_pod.

    Supported Task Types

    Selecione o tipo de tarefa PyODPS 3.

    Installation Package

    Selecione Python3 e escolha o pacote pendulum fornecido pelo sistema na lista suspensa.

    Para instalar um pacote open-source que não seja nativo, use o modo Script para instalação manual. Para mais informações sobre os métodos de configuração, consulte Parâmetros para criação de imagem personalizada.
    Importante

    Para instalar pacotes open-source da internet pública, a VPC associada ao grupo de recursos serverless deve ter acesso à rede pública.

  4. Clique em OK para criar a imagem personalizada.

  5. Na página Custom Images, teste e depois implante a imagem. A imagem precisa passar no teste antes da implantação.

  6. Na coluna Operation da imagem desejada, clique em image > Modify Owning Workspace para associar um workspace proprietário à imagem personalizada.

    Após a implantação bem-sucedida da imagem, o Deployment Status muda para Deployed, e um botão Disable aparece na coluna Actions. O menu suspenso Actions também inclui opções como Modify, Build, View Versions e Delete Image.

Etapa 2: Criar e configurar um nó PyODPS 3

  1. Na barra de navegação à esquerda, clique em Data Development and O&M > Data Studio, selecione o workspace desejado na lista suspensa e clique em Go to DataStudio.

  2. Em um business flow existente, crie um nó PyODPS 3 chamado pyodps3_pendulum_test.

  3. No editor de código do nó pyodps_pendulum_test, insira o seguinte código Python 3:

    # The pendulum package is installed in the custom image, so you can import it directly.
    import pendulum
    print("Start testing the third-party package pendulum...")
    try:
        # Use pendulum to get the current time in the "Asia/Shanghai" time zone.
        shanghai_time = pendulum.now('Asia/Shanghai')
        # Print the formatted time and time zone information.
        print(f"Successfully imported the 'pendulum' package.")
        print(f"The current time in Shanghai is: {shanghai_time.to_datetime_string()}")
        print(f"The corresponding time zone is: {shanghai_time.timezone_name}")
        print("\nTest passed! The PyODPS node successfully called the third-party package.")
    except Exception as e:
        print(f"Test failed. An error occurred: {e}")

Etapa 3: Testar e verificar o resultado

  1. Clique no ícone ** na barra de ferramentas para executar o código e, na caixa de diálogo Parameter, selecione a imagem pyodps3_with_pendulum criada.

    Importante

    Se não encontrar a imagem desejada, certifique-se de que ela esteja associada ao workspace atual. Para mais informações, consulte a Etapa 6 em "Etapa 1: Criar uma imagem personalizada".

  2. Visualize o log de execução na parte inferior da página. A saída a seguir indica que o pacote pendulum foi chamado com sucesso.

    Start testing the third-party package pendulum...
    Successfully imported the 'pendulum' package.
    The current time in Shanghai is: 2025-09-27 15:45:00
    The corresponding time zone is: Asia/Shanghai
    Test passed! The PyODPS node successfully called the third-party package.

Etapa 4: Implantar o nó PyODPS 3

Após concluir o teste, acesse Scheduling > Resource Group no painel à direita. Selecione seu grupo de recursos serverless e defina a imagem como a imagem personalizada pyodps3_with_pendulum criada. Em seguida, implante o nó no Operation Center.

Instalação de pacotes open-source com o O&M Assistant

Importante

Este método aplica-se a grupos de recursos exclusivos para agendamento, que são uma solução legada e não recomendada. Recomendamos a migração para grupos de recursos serverless, mais poderosos e flexíveis.

  1. Faça login na lista de workspaces do DataWorks, alterne a região no topo da página e clique em Details na coluna Operation do workspace desejado para acessar a página de detalhes do workspace.

  2. Na barra de navegação à esquerda, clique em Resource Group, localize o grupo de recursos exclusivo para agendamento associado e, na coluna Actions, clique em image > O&M Assistant.

  3. Na página O&M Assistant, clique em Create Command no canto superior esquerdo.

  4. Insira o comando correspondente à sua versão do Python:

    • Python 3 (PyODPS 3): Mantenha as opções padrão. Na lista suspensa do tipo de pacote Python3, selecione o pacote de instalação pendulum.

    • Python 2 (PyODPS 2): Selecione o modo Manual Input e insira o conteúdo do comando.

      pip install --upgrade pip
      pip install "pendulum<2.0"
  5. Na página O&M Assistant, clique em Run Command na coluna Actions. Após a execução bem-sucedida do comando, use diretamente import pendulum no nó PyODPS correspondente.

Referência a um recurso Python personalizado

Se precisar apenas chamar uma função de outro arquivo .py, siga estas etapas:

  1. Criar um recurso Python

    1. Na página Data Development, clique com o botão direito no business flow desejado e escolha Create Resource > MaxCompute > Python.

    2. Na caixa de diálogo Create Resource, insira um Name para o recurso, por exemplo, my_utils.py, e clique em Create.

    3. Insira o seguinte código no editor de recurso Python.

      # my_utils.py (Python 3 syntax)
      def say_hello(name):
          print(f"Hello, {name}! This is from the my_utils module.")
    4. Salve e envie o recurso.

  2. Criar um nó e referenciar um recurso

    • No business flow desejado, clique com o botão direito em MaxCompute, selecione Create Node > PyODPS 3 e siga as instruções na tela para criar o nó.

    • No nó, referencie o recurso usando a diretiva ##@resource_reference{"my_utils.py"}. O código completo é o seguinte:

      ##@resource_reference{"my_utils.py"}
      import sys
      import os
      # Add the resource's current directory to the Python interpreter's search path.
      sys.path.append(os.path.dirname(os.path.abspath('my_utils.py')))
      # You can now import and use the resource like a regular module.
      import my_utils
      my_utils.say_hello("DataWorks")
  3. Execute o nó. A saída "Hello, DataWorks! This is from the my_utils module." aparecerá no log.

Perguntas frequentes

  • P: Ao instalar manualmente um pacote via comando, por que o teste da imagem personalizada não progride por muito tempo?

    • Se o ambiente de execução da tarefa depender de um pacote de terceiros da internet pública, a VPC associada ao grupo de recursos serverless deve ter acesso à rede pública. Para mais informações, consulte Habilitar acesso à rede pública para um grupo de recursos.

    • Tente alternar para uma fonte de pacotes Python diferente, como https://mirrors.aliyun.com/pypi/simple/. Os espelhos da Alibaba Cloud não exigem acesso à rede pública.

  • P: O que fazer se a importação de um pacote de terceiros falhar?

    1. Certifique-se de que a imagem personalizada foi implantada com sucesso.

    2. Verifique se o tipo de tarefa suportado pela imagem (PyODPS 2 ou PyODPS 3) corresponde ao tipo do seu nó.

    3. Confirme se a imagem personalizada correta está selecionada nas Properties do nó.

      Não é possível selecionar um grupo de recursos público.
    4. Verifique se a versão do pacote instalado é compatível com sua versão do Python. Por exemplo, o pendulum 2.0 e versões posteriores não suportam Python 2.

Documentos relacionados