Use um arquivo Python wheel em um Databricks Job

Um Python arquivo de roda é uma forma padrão de empacotar e distribuir os arquivos necessários para executar um Python aplicativo . Usando a tarefa Python wheel, o senhor pode garantir a instalação rápida e confiável do código Python no seu trabalho Databricks. Este artigo fornece um exemplo de criação de um arquivo Python wheel e um Job que executa o pacote de aplicativos no arquivo Python wheel. Neste exemplo, o senhor irá:

  • Crie os arquivos Python definindo um aplicativo de exemplo.

  • Agrupe os arquivos de exemplo em um arquivo Python wheel.

  • Crie um Job para executar o arquivo Python wheel.

  • executar o Job e view os resultados.

Antes de começar

Você precisa do seguinte para concluir este exemplo:

  • Python3

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

    pip install wheel setuptools
    

passo 1: Crie 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.

passo 2: Crie o exemplo de script Python

O exemplo de Python a seguir é um script simples que lê argumentos de entrada e imprime esses argumentos. Copie este script e salve-o em um caminho chamado my_test_code/__main__.py no diretório que você criou na passo 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()

passo 3: Crie 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 passo 1.

__version__ = "0.0.1"
__author__ = "Databricks"

o passo 4: Criar o arquivo Python wheel

A conversão dos artefatos do Python em um arquivo Python wheel 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

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

  1. Salve este script em um arquivo chamado setup.py na raiz do diretório que você criou na passo 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. Vá para o diretório que você criou na etapa 1 e execute o seguinte comando para empacotar seu código na distribuição Python wheel :

    python3 setup.py bdist_wheel
    

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

o passo 5. Crie um Databricks Job para executar o arquivo Python wheel

  1. Vá para suas páginas de aterrissagem do Databricks e faça um dos seguintes:

    • Na barra lateral, clique em Ícone de trabalhos fluxo de trabalho e clique Botão Criar Job.

    • Na barra lateral, clique em Novo ícone Novo e selecione Job no menu.

  2. Na caixa de diálogo da tarefa que aparece na tab Tarefas , substitua Adicionar um nome para o Job pelo nome Job , por exemplo, Python wheel example.

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

  4. Em Type, selecione Python wheel.

  5. Em Nome do pacote, digite my_test_package. O nome do pacote é o valor atribuído à variável name no script setup.py .

  6. Em Ponto de entrada, digite 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.

  7. Em clusters, selecione um cluster compatível. Consulte biblioteca com escopo de clusters.

  8. Clique em Add (Adicionar ) em Dependent biblioteca (Biblioteca dependente). Na caixa de diálogo Adicionar biblioteca dependente, com workspace selecionado, arraste o arquivo my_test_package-0.0.1-py3-none-any.whl criado no passo 4 para a área Drop file here da caixa de diálogo.

  9. Clique em Adicionar.

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

    • Para inserir argumentos posicionais, insira os parâmetros como uma matriz de strings formatada em JSON, por exemplo: ["first argument","first value","second argument","second value"].

    • Para inserir argumentos de palavras key , clique em + Adicionar e insira uma key e um valor. Clique em + Adicionar novamente para inserir mais argumentos.

  11. Clique em Salvar tarefa.

passo 6: execute o Job e visualize os detalhes da execução Job

Clique botão de execução Agora para executar o fluxo de trabalho. Para visualizar os detalhes da execução, clique em Exibir execução no pop-up Execução acionada ou clique no link na coluna de horário de início da execução na exibição ExecuçõesJob .

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

Próximos passos

Para saber mais sobre como criar e executar Job do Databricks, consulte Criar e executar trabalhos do Databricks.