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
esetuptool
pacotes. 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 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.
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' ] )
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
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 que aparece na guia Tarefas, substitua Adicionar um nome para o trabalho... pelo nome do trabalho, por exemplo,
Python wheel example
.Em Nome da tarefa, insira um nome para a tarefa, por exemplo,
python_wheel_task
.Em Tipo, selecione Roda de Python.
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 aoname
parâmetro emsetup.py
.Em Ponto de entrada, digite
run
. O ponto de entrada é um dos valores especificados naentry_points
coleção nosetup.py
script. Neste exemplo,run
é o único ponto de entrada definido.Em Computação, selecione um cluster de trabalho existente ou Adicionar novo cluster de trabalho.
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.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 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.
- 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 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.