Partilhar via


Usar um arquivo de roda Python em um trabalho do Azure Databricks

Um arquivo de roda Python é uma maneira padrão de empacotar e distribuir os arquivos necessários para executar um aplicativo Python. Usando a tarefa de roda do Python, você pode garantir a instalação rápida e confiável do código Python em seus trabalhos do Azure Databricks. Este artigo fornece um exemplo de criação de um arquivo de roda Python e um trabalho que executa o aplicativo empacotado no arquivo de roda Python. Neste exemplo, você irá:

  • Crie os arquivos Python definindo um aplicativo de exemplo.
  • Agrupe os arquivos de exemplo em um arquivo de roda do Python.
  • Crie um trabalho para executar o arquivo de roda do Python.
  • Execute o trabalho e visualize os resultados.

Antes de começar

Você precisa do seguinte para concluir este exemplo:

  • Píton3

  • O Python wheel e setuptool pacotes. Você pode usar pip para instalar esses pacotes. Por exemplo, você pode executar o seguinte comando para instalar esses pacotes:

    pip install wheel setuptools
    

Etapa 1: Criar um diretório local para o exemplo

Crie um diretório local para armazenar o código de exemplo e os artefatos gerados, por exemplo, databricks_wheel_test.

Etapa 2: Criar o script Python de exemplo

O exemplo Python a seguir é um script simples que lê argumentos de entrada e imprime esses argumentos. Copie esse script e salve-o em um caminho chamado my_test_code/__main__.py no diretório que você criou na etapa anterior.

"""
The entry point of the Python Wheel
"""

import sys

def main():
  # This method will print the provided arguments
  print('Hello from my func')
  print('Got arguments:')
  print(sys.argv)

if __name__ == '__main__':
  main()

Etapa 3: Criar um arquivo de metadados para o pacote

O arquivo a seguir contém metadados que descrevem o pacote. Salve isso em um caminho chamado no diretório que my_test_code/__init__.py você criou na etapa 1.

__version__ = "0.0.1"
__author__ = "Databricks"

Etapa 4: Criar o arquivo de roda Python

Converter os artefatos Python em um arquivo de roda Python requer a especificação de metadados do pacote, como o nome do pacote e os pontos de entrada. O script a seguir define esses metadados.

Nota

Os entry_points definidos neste script são usados para executar o pacote no fluxo de trabalho do Azure Databricks. Em cada valor em entry_points, o valor antes = (neste exemplo, run) é o nome do ponto de entrada e é usado para configurar a tarefa de roda do Python.

  1. Salve esse script em um arquivo nomeado setup.py na raiz do diretório que você criou na etapa 1:

    from setuptools import setup, find_packages
    
    import my_test_code
    
    setup(
      name='my_test_package',
      version=my_test_code.__version__,
      author=my_test_code.__author__,
      url='https://databricks.com',
      author_email='john.doe@databricks.com',
      description='my test wheel',
      packages=find_packages(include=['my_test_code']),
      entry_points={
        'group_1': 'run=my_test_code.__main__:main'
      },
      install_requires=[
        'setuptools'
      ]
    )
    
  2. Mude para o diretório que você criou na etapa 1 e execute o seguinte comando para empacotar seu código na distribuição de roda Python:

    python3 setup.py bdist_wheel
    

Este comando cria o arquivo de roda Python e o dist/my_test_package-0.0.1-py3.none-any.whl salva no arquivo em seu diretório.

Passo 5. Criar um trabalho do Azure Databricks para executar o arquivo de roda Python

  1. Vá para a página inicial do Azure Databricks e siga um destes procedimentos:

    • Na barra lateral, clique em Ícone Fluxos de Trabalho Fluxos de trabalho e clique em Botão Criar Trabalho.
    • Na barra lateral, clique em Novo ícone Novo e selecione Trabalho no menu.
  2. Na caixa de diálogo da tarefa que aparece na guia Tarefas, substitua Adicionar um nome para o trabalho... pelo nome do trabalho, por exemplo, Python wheel example.

  3. Em Nome da tarefa, insira um nome para a tarefa, por exemplo, python_wheel_task.

  4. Em Tipo, selecione Roda de Python.

  5. Em Nome do pacote, digite my_test_package. O valor Nome do Pacote é o nome do pacote Python a ser importado. Neste exemplo, o nome do pacote é o valor atribuído ao name parâmetro em setup.py.

  6. Em Ponto de entrada, digite run. O ponto de entrada é um dos valores especificados na entry_points coleção no setup.py script. Neste exemplo, run é o único ponto de entrada definido.

  7. Em Computação, selecione um cluster de trabalho existente ou Adicionar novo cluster de trabalho.

  8. Clique em Adicionar em Bibliotecas dependentes. Na caixa de diálogo Adicionar biblioteca dependente, com Espaço de trabalho selecionado, arraste o my_test_package-0.0.1-py3-none-any.whl arquivo criado na etapa 4 para a área Soltar arquivo aqui da caixa de diálogo.

  9. Clique em Adicionar.

  10. Em Parâmetros, selecione Argumentos posicionais ou Argumentos de palavra-chave para inserir a chave e o valor de cada parâmetro. Os argumentos posicionais e de palavra-chave são passados para a tarefa de roda Python como argumentos de linha de comando.

    • Para inserir argumentos posicionais, insira parâmetros como uma matriz de cadeias de caracteres formatada em JSON, por exemplo: ["first argument","first value","second argument","second value"].
    • Para inserir argumentos de palavra-chave, clique em + Adicionar e insira uma chave e um valor. Clique em + Adicionar novamente para inserir mais argumentos.
  11. Clique em Criar tarefa.

Etapa 6: Executar o trabalho e exibir os detalhes da execução do trabalho

Clique Botão Executar agora para executar o fluxo de trabalho. Para exibir detalhes da execução, clique em Exibir execução no pop-up Execução acionada ou clique no link na coluna Hora de início da execução na exibição de execução do trabalho.

Quando a execução for concluída, a saída será exibida no painel Saída , incluindo os argumentos passados para a tarefa.

Passos seguintes

Para saber mais sobre como criar e executar trabalhos do Azure Databricks, consulte Agendar e orquestrar fluxos de trabalho.