Use um arquivo Python wheel em LakeFlow Jobs
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. 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
esetuptool
pacote. O senhor pode usar o sitepip
para instalar esses pacotes. Por exemplo, o senhor pode executar o seguinte comando para instalar esse pacote:Bashpip 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.
"""
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.
__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.
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:Pythonfrom 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 Python wheel:
Bashpython3 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. Criar um trabalho para executar o arquivo Python wheel
-
Em seu site workspace, clique em
Jobs & pipeline na barra lateral.
-
Clique em Create e depois em Job .
A tarefa tab é exibida com o painel de tarefa vazio.
Se a interface de usuárioLakeFlow Jobs estiver ativada , clique no Python wheel para configurar a primeira tarefa. Se o bloco Python wheel não estiver disponível, clique em Add another task type (Adicionar outro tipo de tarefa ) e procure por Python wheel .
-
Opcionalmente, substitua o nome do trabalho, cujo padrão é
New Job <date-time>
pelo seu nome de trabalho. -
Em nome da tarefa , digite um nome para a tarefa.
-
Se necessário, selecione Python wheel no menu suspenso Type (Tipo ).
-
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âmetroname
emsetup.py
. -
Em 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 clustering de trabalho existente ou Adicionar novo clustering de trabalho .
-
Especifique seu arquivo Python wheel:
- No menu suspenso Environment and library (Ambiente e biblioteca ), clique no link
ao lado de default (padrão ) para editá-lo. Como alternativa, clique em Adicionar novo ambiente para configurar um novo ambiente.
- Na caixa de diálogo Configurar ambiente , clique em Adicionar dependência.
- Clique
no ícone da pasta para abrir o navegador de arquivos. Arraste e solte o arquivo de roda que o senhor criou no passo 4 na caixa de diálogo Select a dependency (Selecionar uma dependência ).
- Clique em Confirmar .
- No menu suspenso Environment and library (Ambiente e biblioteca ), clique no link
-
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.
- Para inserir argumentos posicionais, insira os parâmetros como uma matriz de strings formatada em JSON, por exemplo:
-
Clique em Criar tarefa .
Etapa 6: executar o trabalho e view os detalhes da execução do trabalho
Clique em para executar o fluxo de trabalho. Para acessar os detalhes da execução no site view, clique na execução tab e, em seguida, clique no link na coluna de tempo de início da execução no Job execução 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 Job, consulte LakeFlow Jobs.