Usar um arquivo Python wheel em um trabalho Databricks
Um arquivo Python wheel é uma forma padrão de empacotar e distribuir os arquivos necessários para executar um aplicativo Python. 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 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
O senhor precisa dos seguintes itens para concluir este exemplo:
Python3
O Python
wheel
esetuptool
pacote. O senhor pode usarpip
para instalar esse pacote. Por exemplo, o senhor pode executar o seguinte comando para instalar esse pacote:pip install wheel setuptools
passo 1: Crie 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
.
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 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.
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' ] )
Mude para o diretório que o senhor criou no passo 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
Acesse o site Databricks páginas de aterrissagem e faça uma das seguintes ações:
Na barra lateral, clique em fluxo de trabalho e clique em .
Na barra lateral, clique em New e selecione Job no menu.
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
.Em Nome da tarefa, insira um nome para a tarefa, por exemplo,
python_wheel_task
.Em Type, selecione Python wheel.
Em Package name (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âmetroname
emsetup.py
.Em Entry point (Ponto de entrada), digite
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 trabalho existente cluster ou adicione um novo trabalho cluster.
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 no passo 4 para a área Drop file here (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 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 + Add novamente para inserir mais argumentos.
Clique em Criar tarefa.
passo 6: execute o Job e visualize os detalhes da execução Job
Clique em 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 ) da execução no Job execution 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 programar e orquestrar fluxo de trabalho.