Pular para o conteúdo principal

Usar um arquivo Python wheel em um trabalho Databricks

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, você vai:

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

Antes de começar

Você precisa do seguinte para concluir este exemplo:

  • Python 3

  • O Python wheel e setuptool pacote. O senhor pode usar o site pip para instalar esses pacotes. Por exemplo, o senhor pode executar o seguinte comando para instalar esse pacote:

    Bash
    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 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.

Python
"""
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 passo 1.

Python
__version__ = "0.0.1"
__author__ = "Databricks"

Etapa 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.

nota

Os entry_points definidos nesse script são usados para executar o pacote no Databricks fluxo de trabalho. 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 do Python wheel.

  1. Salve este script em um arquivo chamado setup.py na raiz do diretório que você criou na passo 1:

    Python
    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 Python wheel:

    Bash
    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 em seu diretório.

Etapa 5. Crie um trabalho Databricks para executar o arquivo Python wheel

  1. Acesse o site Databricks páginas de aterrissagem e faça uma das seguintes ações:

    • Na barra lateral, clique em fluxo de trabalho Icon fluxo de trabalho e clique em Botão criar job.
    • Na barra lateral, clique em Novo ícone New e selecione Job no menu.
  2. Na caixa de diálogo da tarefa que aparece na tarefa tab, substitua Add a name for your Job (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 Type , selecione Python wheel .

  5. Em nome do pacote , digite my_test_package. O valor pacote Name é 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.

  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 computação , selecione um clustering de trabalho existente ou Adicionar novo clustering de trabalho .

  8. Clique em Add (Adicionar ) em Dependent biblioteca (Biblioteca dependente ). Na caixa de diálogo Add dependent library (Adicionar biblioteca dependente ), com o espaço de trabalho selecionado, arraste o arquivo my_test_package-0.0.1-py3-none-any.whl criado na etapa 4 para a área Drop file here (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 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-chave, clique em + Add (Adicionar ) e insira um key e um valor. Clique em + Adicionar novamente para inserir mais argumentos.
  11. Clique em Criar tarefa .

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

Clique em Botão executar agora para executar o fluxo de trabalho. Para acessar view detalhes da execução, clique em view execution (visualizar execução ) na janela pop-up Triggered execution (execução acionada ) ou clique no link na coluna começar time (tempo ) para a execução no Job execution (execução de trabalho) view.

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

Próximas etapas

Para saber mais sobre como criar e executar o Databricks Job, consulte orquestração usando o Databricks Jobs.