Crie um arquivo Python wheel usando Databricks ativo Bundles
Esta página descreve como construir, implementar e executar um arquivo Python wheel usando Databricks ativo Bundles. Veja O que são Databricks Ativo Bundles?.
Para obter um exemplo de configuração que cria um arquivo JAR e o Unity Catalog carrega para, consulte Bundle that upload a JAR file Unity Catalog to.
Requisitos
- Databricks CLI versão 0.218.0 ou acima está instalado e a autenticação está configurada. Para verificar a versão instalada do Databricks CLI, execute o comando
databricks -v. Para instalar a CLI da Databricks, consulte Instalar ou atualizar a CLI da Databricks. Para configurar a autenticação, consulte Configurar o acesso ao site workspace. - O uv é necessário para executar testes e instalar as dependências deste projeto a partir de uma IDE.
- O site workspace remoto deve ter os arquivos workspace ativados. Consulte O que são arquivos workspace?
- Um catálogo existente. Para criar um catálogo, consulte Criar catálogos.
Criar o pacote usando um padrão
Crie o pacote usando o Databricks ativo Bundles default para Python Python. Este pacote consiste em arquivos para criar um arquivo Python wheel e a definição de um Job Databricks para criar esse arquivo Python wheel . Em seguida, você valida, implanta e compila os arquivos de implantação em um arquivo Python wheel a partir do Job Python wheel dentro do seu workspace Databricks .
Se você quiser criar um pacote do zero, consulte Criar um pacote manualmente.
Etapa 1: criar o pacote
Um pacote contém o ativo que você deseja implantar e as configurações para o fluxo de trabalho que você deseja executar.
-
Use o terminal ou o prompt do comando para alternar para um diretório em seu computador de desenvolvimento local que conterá o pacote gerado pelo padrão.
-
Use a versão Databricks CLI para executar o comando
bundle init:Bashdatabricks bundle init -
Para
Template to use, deixe o valor default dedefault-pythonpressionandoEnter. -
Para
Unique name for this project, deixe o valor default demy_projectou digite um valor diferente e pressioneEnter. Isso determina o nome do diretório raiz desse pacote. Esse diretório raiz é criado dentro do seu diretório de trabalho atual. -
Para
Include a job that runs a notebook, selecionenoe pressioneEnter. Isso instrui o site Databricks CLI a não adicionar um Notebook de amostra ao seu pacote. -
Para
Include an ETL pipeline, selecionenoe pressioneEnter. Isso instrui a CLI do Databricks a não definir um pipeline de amostra em seu pacote. -
Para
Include a stub (sample) Python package, deixe o valor default deyespressionandoEnter. Isso instrui a CLI da Databricks a adicionar arquivos de amostra do pacote Python wheel e instruções de compilação relacionadas ao seu pacote. -
Para
Use serverless, selecioneyese pressioneEnter. Isso instrui o Databricks CLI a configurar seu pacote para execução em serverless compute. -
Para
Default catalog for any tables created by this project [hive_metastore], insira o nome de um catálogo existente do Unity Catalog. -
Para
Use a personal schema for each user working on this project., selecioneyes.
Etapa 2: explore o pacote
Para acessar view os arquivos gerados pelo padrão, vá para o diretório raiz do pacote recém-criado e abra esse diretório com o IDE de sua preferência. Os arquivos de interesse particular incluem o seguinte:
databricks.ymlEste arquivo especifica o nome do pacote, inclui referências aos arquivos do pacote, especifica as configurações de compilaçãowhl, define as variáveis de catálogo e esquema e especifica as configurações para o espaço de trabalho de destino.resources/sample_job.job.ymlEste arquivo especifica as configurações do Job Python wheel . Para obter informações sobre configurações de trabalho, consulte Trabalho.src/Esta pasta inclui os arquivos que o Job Python wheel utiliza para construir o arquivo Python wheel .tests/Esta pasta contém exemplos de testes unitários.README.md: Este arquivo contém informações adicionais sobre como começar e usar este pacote padrão.
Se quiser instalar o arquivo Python wheel em um clustering com Databricks Runtime 12.2 LTS ou abaixo, o senhor deve adicionar o seguinte mapeamento de nível superior ao arquivo databricks.yml:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
o passo 3: Validar a configuração do pacote
Agora verifique se a configuração do pacote é válida.
-
A partir do diretório raiz, use a CLI Databricks para executar o comando
bundle validate:Bashdatabricks bundle validate -
Se um resumo da configuração do pacote for retornado, a validação foi bem-sucedida. Se algum erro for retornado, corrija-o e repita essa etapa.
o passo 4: implantou o pacote no workspaceremoto
Em seguida, implante o pacote no seu workspace remoto Databricks . Isso cria o arquivo Python wheel . Verifique se um Job Databricks foi criado em seu workspace.
-
A partir da raiz do pacote, use a CLI Databricks para executar o comando
bundle deploy:Bashdatabricks bundle deploy --target dev -
Confirme se o arquivo Python wheel compilado localmente foi implantado:
- Na barra lateral do site Databricks workspace, clique em workspace .
- Clique na seguinte pasta: workspace > Usuários >
<your-username>> .bundle ><project-name>> dev > artifacts >.internal ><whl-file-name>.whl.
O arquivo Python wheel deve estar nessa pasta.
-
Verifique se a tarefa foi criada:
- Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .
- Opcionalmente, selecione os filtros Empregos e de minha propriedade .
- Clique em [dev
<your-username>]sample_job. - Clique na tab de tarefas . Deveria haver uma tarefa python_wheel_task .
Se você fizer alguma alteração em seu pacote após essa etapa, repita as etapas 3 a 4 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplante o projeto.
Etapa 5: execução do projeto implantado
Agora, inicie a execução do Job do Databricks em seu workspace.
-
A partir do diretório raiz, use a CLI Databricks para executar o comando
bundle run:Bashdatabricks bundle run --target dev sample_job -
Copie o valor de
Run URLque aparece no terminal e cole-o no navegador da Web para abrir o site Databricks workspace. -
No seu workspace Databricks , depois que a tarefa for concluída com sucesso e exibir uma barra de título verde, clique na tarefa para ver os resultados.
Crie o whl usando o Poetry ou o setuptools
Quando o senhor usa databricks bundle init com o padrão default-Python, é criado um pacote que mostra como configurar um pacote que constrói um Python wheel usando uv e pyproject.toml. No entanto, o senhor pode querer usar Poetry ou setuptools para construir uma roda.
Instalar o Poetry ou o setuptools
- Instale o Poetry ou
setuptools:
- Poetry
- Setuptools
- Instale Poetry o site, versão 1.6 ou acima, se ainda não estiver instalado. Para verificar a versão instalada do site Poetry, execute o comando
poetry -Voupoetry --version. - Certifique-se de que o senhor tenha o Python versão 3.10 ou acima instalado. Para verificar sua versão do site Python, execute o comando
python -Voupython --version.
Instale os pacotes wheel e setuptools caso ainda não estejam instalados, executando o seguinte comando:
pip3 install --upgrade wheel setuptools
- Se o senhor pretende armazenar esse pacote com um provedor Git, adicione um arquivo
.gitignorena raiz do projeto e adicione as seguintes entradas a esse arquivo:
- Poetry
- Setuptools
.databricks
dist
.databricks
build
dist
src/my_package/my_package.egg-info
Adicionar arquivos de compilação
- Na raiz do seu pacote, crie as seguintes pastas e arquivos, dependendo se o senhor usa Poetry ou
setuptoolspara criar arquivos Python wheel:
- Poetry
- Setuptools
├── src
│ └── my_package
│ ├── __init__.py
│ ├── main.py
│ └── my_module.py
└── pyproject.toml
├── src
│ └── my_package
│ ├── __init__.py
│ ├── main.py
│ └── my_module.py
└── setup.py
- Adicione o código a seguir ao arquivo
pyproject.tomlousetup.py:
- Pyproject.toml
- Setup.py
[tool.poetry]
name = "my_package"
version = "0.0.1"
description = "<my-package-description>"
authors = ["my-author-name <my-author-name>@<my-organization>"]
[tool.poetry.dependencies]
python = "^3.10"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
main = "my_package.main:main"
- Substitua
my-author-namepelo nome de contato principal da sua organização. - Substitua
my-author-name>@<my-organizationpelo endereço de contato principal da sua organização em email. - Substitua
<my-package-description>por uma descrição de exibição para seu arquivo Python wheel.
from setuptools import setup, find_packages
import src
setup(
name = "my_package",
version = "0.0.1",
author = "<my-author-name>",
url = "https://<my-url>",
author_email = "<my-author-name>@<my-organization>",
description = "<my-package-description>",
packages=find_packages(where='./src'),
package_dir={'': 'src'},
entry_points={
"packages": [
"main=my_package.main:main"
]
},
install_requires=[
"setuptools"
]
)
- Substitua
https://<my-url>pela URL da sua organização. - Substitua
<my-author-name>pelo nome de contato principal da sua organização. - Substitua
<my-author-name>@<my-organization>pelo endereço de contato principal da sua organização em email. - Substitua
<my-package-description>por uma descrição de exibição para seu arquivo Python wheel.
Adicionar configuração de pacote de artefatos
- Adicione a configuração de mapeamento
artifactsao seudatabricks.ymlpara criar o artefatowhl:
- Poetry
- Setuptools
Esta configuração executa o comando “ poetry build ” e indica que o caminho para o arquivo “ pyproject.toml ” está no mesmo diretório que o arquivo “ databricks.yml ”.
If you have already built a Python wheel file and just want to deploy it, then modify the following bundle configuration file by omitting the artifacts mapping. The Databricks CLI will then assume that the Python wheel file is already built and will automatically deploy the files that are specified in the libraries array's whl entries.
bundle:
name: my-wheel-bundle
artifacts:
default:
type: whl
build: poetry build
path: .
resources:
jobs:
wheel-job:
name: wheel-job
tasks:
- task_key: wheel-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: n2-highmem-4
data_security_mode: USER_ISOLATION
num_workers: 1
python_wheel_task:
entry_point: main
package_name: my_package
libraries:
- whl: ./dist/*.whl
targets:
dev:
workspace:
host: <workspace-url>
Esta configuração executa o comando “ setuptools ” e indica que o caminho para o arquivo “ setup.py ” está no mesmo diretório que o arquivo “ databricks.yml ”.
bundle:
name: my-wheel-bundle
artifacts:
default:
type: whl
build: python3 setup.py bdist wheel
path: .
resources:
jobs:
wheel-job:
name: wheel-job
tasks:
- task_key: wheel-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: n2-highmem-4
data_security_mode: USER_ISOLATION
num_workers: 1
python_wheel_task:
entry_point: main
package_name: my_package
libraries:
- whl: ./dist/*.whl
targets:
dev:
workspace:
host: <workspace-url>