Usar um arquivo wheel do Python em um trabalho do Azure Databricks
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 da 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 wheel do Python e um trabalho que executa o aplicativo empacotado no arquivo wheel do Python. Neste exemplo, você vai:
- Criar os arquivos Python que definem um aplicativo de exemplo.
- Agrupe os arquivos de exemplo em um arquivo wheel do Python.
- Crie um trabalho para executar o arquivo wheel do Python.
- Executará o trabalho e verá os resultados.
Antes de começar
Você precisa dos seguintes itens para concluir este exemplo:
Python3
Os pacotes
wheel
esetuptool
do Python. Você pode usarpip
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 =
(neste exemplo, run
) é o nome do ponto de entrada e é usado para configurar a tarefa de roda do Python.
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' ] )
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 do Azure Databricks para executar o arquivo wheel do Python
Vá para a página inicial do Azure Databricks e siga um destes procedimentos:
- Na barra lateral, clique em Fluxos de Trabalho e clique em .
- Na barra lateral, clique em Novo e selecione Trabalho no menu.
Na caixa de diálogo da tarefa exibida na guia Tarefas, substitua Adicionar um nome para seu trabalho... com seu nome de trabalho, por exemplo
Python wheel example
.Em Nome da tarefa, insira um nome para a tarefa, por exemplo,
python_wheel_task
.Em Tipo, selecione Wheel do Python.
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âmetroname
emsetup.py
.Em Ponto de entrada, insira
run
. O ponto de entrada é um dos valores especificados na coleçãoentry_points
no scriptsetup.py
. Neste exemplo,run
é o único ponto de entrada definido.Em Computação, selecione um cluster de trabalhos existente ou Adicionar novo grupo de trabalhos.
Clique em Adicionar em Bibliotecas dependentes. Na caixa de diálogo 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 Solte o arquivo aqui da caixa de diálogo.Clique em Adicionar.
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 de 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.
- Para inserir argumentos posicionais, insira parâmetros como uma matriz de cadeias de caracteres formatada em JSON, por exemplo:
Clique em Criar tarefa.
Etapa 6: executar o trabalho e exibir os detalhes da execução do trabalho
Clique no agora para executar o fluxo de trabalho. Para exibir detalhes da execução, clique em Exibir execução no item pop-up da Execução disparada ou clique no link na coluna Hora de início da execução na exibição de execuções de 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 do Azure Databricks, confira Agendar e orquestrar fluxos de trabalho.