Compartilhar via


Usar um arquivo de roda python em Trabalhos do Lakeflow

Um arquivo wheel do 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. Este artigo fornece um exemplo de criação de um arquivo wheel do Python e um trabalho que executa o aplicativo empacotado no arquivo wheel do Python. Neste exemplo, você irá:

  • Criar os arquivos Python que definem um aplicativo de exemplo.
  • Agrupe os arquivos de exemplo em um arquivo wheel do Python.
  • Crie uma tarefa para executar o arquivo wheel do Python.
  • Execute o trabalho e veja os resultados.

Antes de começar

Você precisa dos seguintes itens para concluir este exemplo:

  • Python3

  • Os pacotes wheel e setuptool do Python. 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 conter o código de exemplo e os artefatos gerados, por exemplo, databricks_wheel_test.

Etapa 2: criar o script Python de exemplo

O exemplo do 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 my_test_code/__init__.py no diretório que você criou na etapa 1.

__version__ = "0.0.1"
__author__ = "Databricks"

Etapa 4: criar o arquivo wheel do Python

Converter os artefatos do Python em um arquivo wheel do 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.

Observação

O entry_points definido neste script é usado para executar o pacote no fluxo de trabalho do Azure Databricks. Em cada valor em entry_points, o valor anterior a = (neste exemplo, run) é o nome do ponto de entrada e é usado para configurar a tarefa de wheel do Python.

  1. Salve esse script em um arquivo chamado 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. Altere 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 do Python:

    python3 setup.py bdist_wheel
    

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

Etapa 5. Criar um trabalho para executar o arquivo de roda do Python

  1. No seu espaço de trabalho, clique no ícone Fluxos de Trabalho.Tarefas e Pipelines na barra lateral.

  2. Clique em Criar e depois em Job.

  3. Clique no bloco da roda do Python para configurar a primeira tarefa. Se o bloco da roda do Python não estiver disponível, clique em Adicionar outro tipo de tarefa e pesquise a roda do Python.

  4. Opcionalmente, substitua o nome do trabalho, que usa New Job <date-time>como padrão , o nome do trabalho.

  5. Em Nome da tarefa, insira um nome para a tarefa.

  6. Se necessário, selecione a roda do Python no menu suspenso Tipo .

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

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

  9. Em Computação, selecione um cluster de trabalhos existente ou Adicionar novo grupo de trabalhos.

  10. Especifique o arquivo de roda do Python:

    • Na lista suspensa Ambiente e Bibliotecas , clique no ícone Lápis. Ao lado de Padrão, para editá-lo. Como alternativa, clique em Adicionar novo ambiente para configurar um novo ambiente.
    • Na caixa de diálogo Configurar ambiente , clique em Adicionar dependência.
    • Clique no Ícone da Pasta no ícone da pasta para abrir o navegador de arquivos. Arraste e solte o arquivo de roda que você criou na etapa 4 na caixa de diálogo Selecionar uma dependência .
    • Clique em Confirmar.
  11. 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 à tarefa 'wheel' do 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.
  12. Clique em Criar tarefa.

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

Clique no Botão Executar agora para executar o fluxo de trabalho. Para exibir detalhes da execução, clique na guia Execuções e clique no link na coluna Hora de Início da execução no modo de execução do trabalho .

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

Próximas etapas

Para saber mais sobre como criar e executar trabalhos, consulte Lakeflow Jobs.