Pular para o conteúdo principal

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

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.

  1. 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.

  2. Use a versão Databricks CLI para executar o comando bundle init:

    Bash
    databricks bundle init
  3. Para Template to use, deixe o valor default de default-python pressionando Enter.

  4. Para Unique name for this project, deixe o valor default de my_project ou digite um valor diferente e pressione Enter. Isso determina o nome do diretório raiz desse pacote. Esse diretório raiz é criado dentro do seu diretório de trabalho atual.

  5. Para Include a job that runs a notebook, selecione no e pressione Enter. Isso instrui o site Databricks CLI a não adicionar um Notebook de amostra ao seu pacote.

  6. Para Include an ETL pipeline, selecione no e pressione Enter. Isso instrui a CLI do Databricks a não definir um pipeline de amostra em seu pacote.

  7. Para Include a stub (sample) Python package, deixe o valor default de yes pressionando Enter. 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.

  8. Para Use serverless, selecione yes e pressione Enter. Isso instrui o Databricks CLI a configurar seu pacote para execução em serverless compute.

  9. Para Default catalog for any tables created by this project [hive_metastore], insira o nome de um catálogo existente do Unity Catalog.

  10. Para Use a personal schema for each user working on this project., selecione yes.

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ção whl , 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.
nota

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:

YAML
# 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.

  1. A partir do diretório raiz, use a CLI Databricks para executar o comando bundle validate :

    Bash
    databricks bundle validate
  2. 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.

  1. A partir da raiz do pacote, use a CLI Databricks para executar o comando bundle deploy :

    Bash
    databricks bundle deploy --target dev
  2. Confirme se o arquivo Python wheel compilado localmente foi implantado:

    1. Na barra lateral do site Databricks workspace, clique em workspace .
    2. 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.

  3. Verifique se a tarefa foi criada:

    1. Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .
    2. Opcionalmente, selecione os filtros Empregos e de minha propriedade .
    3. Clique em [dev <your-username>] sample_job .
    4. 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.

  1. A partir do diretório raiz, use a CLI Databricks para executar o comando bundle run :

    Bash
    databricks bundle run --target dev sample_job
  2. Copie o valor de Run URL que aparece no terminal e cole-o no navegador da Web para abrir o site Databricks workspace.

  3. 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

  1. Instale o Poetry ou 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 ou poetry --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 ou python --version.
  1. 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:
.databricks
dist

Adicionar arquivos de compilação

  1. Na raiz do seu pacote, crie as seguintes pastas e arquivos, dependendo se o senhor usa Poetry ou setuptools para criar arquivos Python wheel:
├── src
│ └── my_package
│ ├── __init__.py
│ ├── main.py
│ └── my_module.py
└── pyproject.toml
  1. Adicione o código a seguir ao arquivo pyproject.toml ou 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.

Adicionar configuração de pacote de artefatos

  1. Adicione a configuração de mapeamento artifacts ao seu databricks.yml para criar o artefato whl:

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 ”.

nota

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.

YAML
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>