Crie um arquivo Python wheel usando Databricks ativo Bundles
Este artigo descreve como criar, implantar e executar um arquivo Python wheel como parte de um projeto Databricks ativo Bundle . 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 site workspace remoto deve ter os arquivos workspace ativados. Consulte O que são arquivos workspace?
Criar o pacote usando um padrão
Nessas etapas, o senhor cria o pacote usando o padrão Databricks default bundle para Python. Esse pacote consiste em arquivos a serem criados em um arquivo Python wheel e na definição de um trabalho Databricks para criar esse arquivo Python wheel. Em seguida, o senhor valida, implanta e cria os arquivos implantados em um arquivo Python wheel a partir do Python wheel Job em seu Databricks workspace.
O padrão de pacote Databricks default para Python usa uv para criar o arquivo Python wheel. Para instalar o uv
, consulte Instalando uv.
Se você quiser criar um pacote do zero, consulte Criar um pacote manualmente.
Etapa 1: criar o pacote
Um pacote contém os artefatos que o senhor deseja implantar e as configurações para o fluxo de trabalho que 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-python
pressionandoEnter
. -
Para
Unique name for this project
, deixe o valor default demy_project
ou 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 stub (sample) notebook
, selecioneno
e pressioneEnter
. Isso instrui o site Databricks CLI a não adicionar um Notebook de amostra ao seu pacote. -
Para
Include a stub (sample) Delta Live Tables pipeline
, selecioneno
e 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 deyes
pressionandoEnter
. 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
, selecioneyes
e pressioneEnter
. Isso instrui o Databricks CLI a configurar seu pacote para execução em serverless compute.
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.yml
: Esse arquivo especifica o nome do pacote, especifica as configurações de compilação dowhl
, inclui uma referência ao arquivo de configuração do trabalho e define as configurações do espaço de trabalho de destino.resources/<project-name>_job.yml
: Esse arquivo especifica as configurações do Python wheel Job.src/<project-name>
: Esse diretório inclui os arquivos que o trabalho Python wheel usa para criar o arquivo Python wheel.
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
Etapa 3: Validar o arquivo de configuração do pacote do projeto
Nesta etapa, você verifica se a configuração do pacote é válida.
-
No diretório raiz, use o endereço Databricks CLI para executar o comando
bundle validate
, como segue: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.
Se você fizer alguma alteração em seu pacote após essa etapa, repita essa etapa para verificar se a configuração do pacote ainda é válida.
Etapa 4: Crie o arquivo Python wheel e implante o projeto local no remoto workspace
Nessa etapa, o arquivo Python wheel é criado e implantado no site remoto Databricks workspace e um trabalho Databricks é criado no site workspace.
-
Use o Databricks CLI para executar o
bundle deploy
comando da seguinte forma:Bashdatabricks bundle deploy -t dev
-
Para verificar se o arquivo Python wheel criado 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 ><random-guid>
.
O arquivo Python wheel deve estar nessa pasta.
-
Para verificar se o trabalho foi criado:
- 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>
]<project-name>
Job . - Clique na aba Tarefas .
Deve haver uma tarefa: main_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
Nesta passo, você executa o Job do Databricks em seu workspace.
-
No diretório raiz, use o comando Databricks CLI para executar o comando
bundle run
, como segue, substituindo<project-name>
pelo nome do projeto da Etapa 1:Bashdatabricks bundle run -t dev <project-name>_job
-
Copie o valor de
Run URL
que aparece no terminal e cole-o no navegador da Web para abrir o site Databricks workspace. -
Em seu site Databricks workspace, depois que a tarefa for concluída com êxito e mostrar uma barra de título verde, clique na tarefa main_task 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 -V
oupoetry --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 -V
oupython --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
.gitignore
na 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
setuptools
para 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.toml
ousetup.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-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.
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
artifacts
ao seudatabricks.yml
para 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>