Desenvolver um arquivo de roda Python usando Databricks Asset Bundles
Este artigo descreve como criar, implantar e executar um arquivo de roda Python como parte de um projeto Databricks Asset Bundle . Consulte O que são Databricks Asset Bundles?
Requisitos
- Databricks CLI versão 0.218.0 ou superior. Para verificar a versão instalada da CLI do Databricks, execute o comando
databricks -v
. Para instalar a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks. - O espaço de trabalho remoto deve ter arquivos de espaço de trabalho habilitados. Consulte O que são arquivos de espaço de trabalho?.
Decisão: Crie o pacote manualmente ou usando um modelo
Decida se deseja criar um pacote inicial usando um modelo ou criar o pacote manualmente. Criar o pacote usando um modelo é mais rápido e fácil, mas o pacote pode produzir conteúdo que não é necessário, e as configurações padrão do pacote devem ser ainda mais personalizadas para aplicativos reais. Criar o pacote manualmente lhe dá controle total sobre as configurações do pacote, mas você deve estar familiarizado com como os pacotes funcionam, pois você está fazendo todo o trabalho desde o início. Escolha um dos seguintes conjuntos de etapas:
Criar o pacote usando um modelo
Nestas etapas, você cria o pacote usando o modelo de pacote padrão do Azure Databricks para Python. Estas etapas orientam você a criar um pacote que consiste em arquivos para compilar em um arquivo de roda Python e a definição de um trabalho do Azure Databricks para criar esse arquivo de roda Python. Em seguida, você valida, implanta e cria os arquivos implantados em um arquivo de roda Python a partir do trabalho de roda Python em seu espaço de trabalho do Azure Databricks.
O modelo de pacote padrão do Azure Databricks para Python usa setuptools para criar o arquivo de roda do Python. Se você quiser usar o Poetry para construir o arquivo de roda do Python em vez disso, siga as instruções mais adiante nesta seção para trocar a setuptools
implementação por uma implementação do Poetry.
Etapa 1: configurar a autenticação
Nesta etapa, você configura a autenticação entre a CLI do Databricks em sua máquina de desenvolvimento e seu espaço de trabalho do Azure Databricks. Este artigo pressupõe que você deseja usar a autenticação de usuário para máquina (U2M) OAuth e um perfil de configuração do Azure Databricks correspondente nomeado DEFAULT
para autenticação.
Nota
A autenticação U2M é apropriada para experimentar essas etapas em tempo real. Para fluxos de trabalho totalmente automatizados, o Databricks recomenda que você use a autenticação OAuth máquina-a-máquina (M2M). Consulte as instruções de configuração da autenticação M2M em Autenticação.
Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o seguinte comando para cada espaço de trabalho de destino.
No comando a seguir, substitua
<workspace-url>
pela URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A CLI do Databricks solicita que você salve as informações inseridas como um perfil de configuração do Azure Databricks. Pressione
Enter
para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.Para obter uma lista de quaisquer perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando
databricks auth profiles
. Para visualizar as configurações existentes de um perfil específico, execute o comandodatabricks auth env --profile <profile-name>
.No navegador da Web, conclua as instruções na tela para fazer logon no espaço de trabalho do Azure Databricks.
Para exibir o valor atual do token OAuth de um perfil e o carimbo de data/hora de expiração do token, execute um dos seguintes comandos:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se você tiver vários perfis com o mesmo
--host
valor, talvez seja necessário especificar as--host
opções e-p
juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.
Etapa 2: Criar o pacote
Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.
Use seu terminal ou prompt de comando para alternar para um diretório em sua máquina de desenvolvimento local que conterá o pacote gerado pelo modelo.
Use a versão da CLI do Databricks para executar o
bundle init
comando:databricks bundle init
Para
Template to use
, deixe o valor padrão dedefault-python
pressionandoEnter
.Para
Unique name for this project
, deixe o valor padrão demy_project
, ou digite um valor diferente e pressioneEnter
. Isso determina o nome do diretório raiz para este pacote. Este diretório raiz é criado dentro do seu diretório de trabalho atual.Para
Include a stub (sample) notebook
, selecioneno
e pressioneEnter
. Isso instrui a CLI do Databricks a não adicionar um bloco de anotações de exemplo ao seu pacote.Para
Include a stub (sample) DLT pipeline
, selecioneno
e pressioneEnter
. Isso instrui a CLI do Databricks a não definir um pipeline Delta Live Tables de exemplo em seu pacote.Para
Include a stub (sample) Python package
, deixe o valor padrão deyes
pressionandoEnter
. Isso instrui a CLI do Databricks a adicionar arquivos de pacote de roda Python de exemplo e instruções de compilação relacionadas ao seu pacote.
Passo 3: Explore o pacote
Para exibir os arquivos que o modelo gerou, alterne para o diretório raiz do pacote recém-criado e abra esse diretório com seu IDE preferido, por exemplo, Visual Studio Code. Os ficheiros de particular interesse incluem o seguinte:
databricks.yml
: Este arquivo especifica o nome programático do pacote, inclui uma referência à definição de tarefa de roda Python e especifica configurações sobre o espaço de trabalho de destino.resources/<project-name>_job.yml
: Este arquivo especifica as configurações do trabalho de roda do Python.src/<project-name>
: Este diretório inclui os arquivos que o trabalho de roda Python usa para construir o arquivo de roda Python.
Nota
Se desejar instalar o arquivo de roda Python em um cluster de destino que tenha o Databricks Runtime 12.2 LTS ou inferior instalado, você deve adicionar o seguinte mapeamento de nível superior ao databricks.yml
arquivo:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Esse mapeamento instrui a CLI do Databricks a fazer o seguinte:
- Implemente uma cópia do arquivo de roda Python em segundo plano. Esse caminho de implantação normalmente é
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Crie um bloco de anotações em segundo plano que contenha instruções para instalar o arquivo de roda Python implantado anteriormente no cluster de destino. O caminho deste bloco de anotações é normalmente
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - Quando você executa um trabalho que contém uma tarefa de roda Python e que as tarefas fazem referência ao arquivo de roda Python anterior, um trabalho é criado em segundo plano que executa o bloco de anotações anterior.
Não é necessário especificar esse mapeamento para clusters de destino com o Databricks Runtime 13.1 ou superior instalado, pois as instalações de roda Python do sistema de arquivos do espaço de trabalho do Azure Databricks serão instaladas automaticamente nesses clusters de destino.
Passo 4: Atualize o pacote do projeto para usar o Poetry
Por padrão, o modelo de pacote especifica a criação do arquivo de roda Python usando setuptools
junto com os arquivos setup.py
e requirements-dev.txt
. Se você quiser manter esses padrões, pule para a Etapa 5: Validar o arquivo de configuração do pacote do projeto.
Para atualizar o pacote do projeto para usar o Poetry em vez do , certifique-se de que sua máquina de setuptools
desenvolvimento local atenda aos seguintes requisitos:
- Poesia versão 1.6 ou superior. Para verificar a versão instalada do Poetry, execute o comando
poetry -V
oupoetry --version
. Para instalar ou atualizar o Poetry, consulte Instalação. - Python versão 3.10 ou superior. Para verificar sua versão do Python, execute o comando
python -V
oupython --version
. - Databricks CLI versão 0.209.0 ou superior. Para a sua versão da CLI do Databricks, execute o comando
databricks -v
oudatabricks --version
. Consulte Instalar ou atualizar a CLI do Databricks.
Faça as seguintes alterações no pacote do projeto:
No diretório raiz do pacote, instrua
poetry
a inicializar as compilações da roda Python para Poetry, executando o seguinte comando:poetry init
Poesia exibe vários prompts para você completar. Para as compilações de roda Python, responda a esses prompts da seguinte maneira para corresponder às configurações padrão relacionadas no pacote do projeto:
- Para
Package name
, digite o nome da pasta filho em/src
e pressioneEnter
. Esse também deve ser o valor doname
pacote definido no arquivo dosetup.py
pacote. - Para
Version
, digite0.0.1
e pressioneEnter
. Isso corresponde ao número da versão definido no arquivo dosrc/<project-name>/__init__.py
pacote. - Para
Description
, digitewheel file based on <project-name>/src
(substituindo<project-name>
pelo nome do projeto) e pressioneEnter
. Isso corresponde aodescription
valor definido no arquivo dosetup.py
modelo. - Para
Author
, pressioneEnter
. Esse valor padrão corresponde ao autor definido no arquivo dosetup.py
modelo. - Para
License
, pressioneEnter
. Não há nenhuma licença definida no modelo. - Para
Compatible Python versions
, insira a versão do Python que corresponde à dos clusters do Azure Databricks de destino (por exemplo,^3.10
) e pressioneEnter
. - Para
Would you like to define your main dependencies interactively?
Digiteno
e pressioneEnter
. Você definirá suas dependências mais tarde. - Para
Would you like to define your development dependencies interactively?
Digiteno
e pressioneEnter
. Você definirá suas dependências mais tarde. - Para
Do you confirm generation?
a imprensaEnter
.
- Para
Depois de concluir os prompts, o Poetry adiciona um
pyproject.toml
arquivo ao projeto do pacote. Para obter informações sobre opyproject.toml
arquivo, consulte O arquivo pyproject.toml.No diretório raiz do pacote, instrua
poetry
a ler opyproject.toml
arquivo, resolver as dependências e instalá-las, criar umpoetry.lock
arquivo para bloquear as dependências e, finalmente, criar um ambiente virtual. Para tal, execute o seguinte comando:poetry install
Adicione a seguinte seção no final do
pyproject.toml
arquivo, substituindo<project-name>
pelo nome do diretório que contém osrc/<project-name>/main.py
arquivo (por exemplo,my_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
A seção especifica o ponto de entrada da roda Python para o trabalho da roda Python.
Adicione o seguinte mapeamento no nível superior do arquivo do
databricks.yml
pacote:artifacts: default: type: whl build: poetry build path: .
Esse mapeamento instrui a CLI do Databricks a usar o Poetry para construir um arquivo de roda Python.
Exclua os
setup.py
arquivos erequirements-dev.txt
do pacote, pois o Poetry não precisa deles.
Etapa 5: 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 a CLI do Databricks para executar o
bundle validate
comando, da seguinte maneira:databricks bundle validate
Se um resumo da configuração do pacote for retornado, a validação será bem-sucedida. Se algum erro for retornado, corrija-os e repita esta etapa.
Se você fizer alguma alteração no pacote após esta etapa, repita esta etapa para verificar se a configuração do pacote ainda é válida.
Etapa 6: Criar o arquivo de roda Python e implantar o projeto local no espaço de trabalho remoto
Nesta etapa, você cria o arquivo de roda Python, implanta o arquivo de roda Python criado em seu espaço de trabalho remoto do Azure Databricks e cria o trabalho do Azure Databricks em seu espaço de trabalho.
Se você usar
setuptools
o , instale oswheel
pacotes esetuptools
se ainda não tiver feito isso, executando o seguinte comando:pip3 install --upgrade wheel setuptools
No terminal do Visual Studio Code, use a CLI do Databricks para executar o
bundle deploy
comando da seguinte maneira:databricks bundle deploy -t dev
Se você quiser verificar se o arquivo de roda Python construído localmente foi implantado:
- Na barra lateral do seu espaço de trabalho do Azure Databricks, clique em Espaço de trabalho.
- Clique na seguinte pasta: Workspace > Users
<your-username>
> >.bundle ><project-name>
> dev > artifacts > .internal .><random-guid>
O arquivo de roda Python deve estar nesta pasta.
Se você quiser verificar se o trabalho foi criado:
- Na barra lateral do seu espaço de trabalho do Azure Databricks, clique em Fluxos de trabalho.
- Na guia Trabalhos, clique em [dev
<your-username>
]<project-name>
_job. - Clique na guia Tarefas .
Deve haver uma tarefa: main_task.
Se você fizer alterações no pacote após esta etapa, repita as etapas 5 a 6 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.
Etapa 7: Executar o projeto implantado
Nesta etapa, você executa o trabalho do Azure Databricks em seu espaço de trabalho.
No diretório raiz, use a CLI do Databricks para executar o
bundle run
comando, da seguinte forma, substituindo<project-name>
pelo nome do seu projeto da Etapa 2:databricks bundle run -t dev <project-name>_job
Copie o valor que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu espaço de
Run URL
trabalho do Azure Databricks.No seu espaço de trabalho do Azure Databricks, 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.
Se você fizer alterações no pacote após esta etapa, repita as etapas 5 a 7 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.
Você chegou ao final das etapas para criar um pacote usando um modelo.
Criar o pacote manualmente
Nestas etapas, você cria o pacote desde o início manualmente. Estas etapas guiam você para criar um pacote que consiste em arquivos para construir em um arquivo de roda Python e a definição de um trabalho Databricks para construir esse arquivo de roda Python. Em seguida, você valida, implanta e constrói os arquivos implantados em um arquivo de roda Python a partir do trabalho de roda Python em seu espaço de trabalho Databricks.
Essas etapas incluem a adição de conteúdo a um arquivo YAML. Opcionalmente, convém usar um ambiente de desenvolvimento integrado (IDE) que forneça sugestões e ações automáticas de esquema ao trabalhar com arquivos YAML. As etapas a seguir usam o Visual Studio Code com a extensão YAML instalada a partir do Visual Studio Code Marketplace.
Estas etapas pressupõem que você já saiba:
- Como criar, construir e trabalhar com arquivos de roda Python com Poetry ou
setuptools
. Para Poesia, ver Uso básico. Parasetuptools
, consulte o Python Packaging User Guide. - Como usar arquivos de roda Python como parte de um trabalho do Azure Databricks. Consulte Usar um arquivo de roda Python em um trabalho do Azure Databricks.
Siga estas instruções para criar um pacote de exemplo que cria um arquivo de roda Python com Poetry ou , implanta setuptools
o arquivo de roda Python e, em seguida, executa o arquivo de roda Python implantado.
Se você já construiu um arquivo de roda Python e deseja apenas implantá-lo e executá-lo, pule para especificar as configurações de roda Python no arquivo de configuração do pacote na Etapa 3: Criar o arquivo de configuração do pacote.
Etapa 1: configurar a autenticação
Nesta etapa, você configura a autenticação entre a CLI do Databricks em sua máquina de desenvolvimento e seu espaço de trabalho do Azure Databricks. Este artigo pressupõe que você deseja usar a autenticação de usuário para máquina (U2M) OAuth e um perfil de configuração do Azure Databricks correspondente nomeado DEFAULT
para autenticação.
Nota
A autenticação U2M é apropriada para experimentar essas etapas em tempo real. Para fluxos de trabalho totalmente automatizados, o Databricks recomenda que você use a autenticação OAuth máquina-a-máquina (M2M). Consulte as instruções de configuração da autenticação M2M em Autenticação.
Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o seguinte comando para cada espaço de trabalho de destino.
No comando a seguir, substitua
<workspace-url>
pela URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A CLI do Databricks solicita que você salve as informações inseridas como um perfil de configuração do Azure Databricks. Pressione
Enter
para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.Para obter uma lista de quaisquer perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando
databricks auth profiles
. Para visualizar as configurações existentes de um perfil específico, execute o comandodatabricks auth env --profile <profile-name>
.No navegador da Web, conclua as instruções na tela para fazer logon no espaço de trabalho do Azure Databricks.
Para exibir o valor atual do token OAuth de um perfil e o carimbo de data/hora de expiração do token, execute um dos seguintes comandos:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se você tiver vários perfis com o mesmo
--host
valor, talvez seja necessário especificar as--host
opções e-p
juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.
Etapa 2: Criar o pacote
Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.
Na raiz do seu pacote, crie as seguintes pastas e arquivos, dependendo se você usa o Poetry ou
setuptools
para construir arquivos de roda Python:Poesia
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
Ferramentas de configuração
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
Deixe o
__init__.py
arquivo vazio.Adicione o seguinte código ao
main.py
ficheiro e, em seguida, guarde o ficheiro:from my_package.my_module import * def main(): first = 200 second = 400 print(f"{first} + {second} = {add_two_numbers(first, second)}") print(f"{second} - {first} = {subtract_two_numbers(second, first)}") print(f"{first} * {second} = {multiply_two_numbers(first, second)}") print(f"{second} / {first} = {divide_two_numbers(second, first)}") if __name__ == "__main__": main()
Adicione o seguinte código ao
my_module.py
ficheiro e, em seguida, guarde o ficheiro:def add_two_numbers(a, b): return a + b def subtract_two_numbers(a, b): return a - b def multiply_two_numbers(a, b): return a * b def divide_two_numbers(a, b): return a / b
Adicione o seguinte código ao
pyproject.toml
ficheiro ousetup.py
e, em seguida, guarde o ficheiro:Pyproject.toml
[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 de e-mail principal da sua organização. - Substitua
<my-package-description>
por uma descrição de exibição para seu arquivo de roda Python.
Setup.py
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>
pelo 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 de e-mail principal da sua organização. - Substitua
<my-package-description>
por uma descrição de exibição para seu arquivo de roda Python.
- Substitua
Etapa 3: Criar o arquivo de configuração do pacote
Um arquivo de configuração de pacote descreve os artefatos que você deseja implantar e os fluxos de trabalho que deseja executar.
Na raiz do seu pacote, adicione um arquivo de configuração do pacote chamado
databricks.yml
. Adicione o seguinte código a este ficheiro:Poesia
Nota
Se você já construiu um arquivo de roda Python e deseja apenas implantá-lo, modifique o seguinte arquivo de configuração do pacote omitindo o
artifacts
mapeamento. A CLI do Databricks assumirá que o arquivo de roda Python já está compilado e implantará automaticamente os arquivos especificadoswhl
naslibraries
entradas da matriz.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: Standard_DS3_v2 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>
Ferramentas de configuração
bundle: name: my-wheel-bundle resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 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>
Substitua
<workspace-url>
pelo URL por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net
.O
artifacts
mapeamento é necessário para construir arquivos de roda Python com Poetry e é opcional para construir arquivos de roda Python comsetuptools
. Oartifacts
mapeamento contém uma ou mais definições de artefato com os seguintes mapeamentos:- O
type
mapeamento deve estar presente e definido parawhl
especificar que um arquivo de roda Python deve ser construído. Parasetuptools
,whl
é o padrão se nenhuma definição de artefato for especificada. - O
path
mapeamento indica o caminho para opyproject.toml
arquivo para Poetry ou para osetup.py
arquivo parasetuptools
. Esse caminho é relativo aodatabricks.yml
arquivo. Parasetuptools
, esse caminho é.
(o mesmo diretório que odatabricks.yml
arquivo) por padrão. - O
build
mapeamento indica quaisquer comandos de compilação personalizados a serem executados para construir o arquivo de roda do Python. Parasetuptools
, este comando épython3 setup.py bdist wheel
por padrão. - O
files
mapeamento consiste em um ou maissource
mapeamentos que especificam quaisquer arquivos adicionais a serem incluídos na compilação da roda do Python. Não há inadimplência.
Nota
Se desejar instalar o arquivo de roda Python em um cluster de destino que tenha o Databricks Runtime 12.2 LTS ou inferior instalado, você deve adicionar o seguinte mapeamento de nível superior ao
databricks.yml
arquivo:# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
Esse mapeamento instrui a CLI do Databricks a fazer o seguinte:
- Implanta uma cópia do arquivo de roda Python em segundo plano. Esse caminho de implantação normalmente é
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Cria um bloco de anotações em segundo plano que contém instruções para instalar o arquivo de roda Python implantado anterior no cluster de destino. O caminho deste bloco de anotações é normalmente
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - Quando você executa um trabalho que contém uma tarefa de roda Python e essa tarefa faz referência ao arquivo de roda Python anterior, um trabalho é criado em segundo plano que executa o bloco de anotações anterior.
Não é necessário especificar esse mapeamento para clusters de destino com o Databricks Runtime 13.1 ou superior instalado, pois as instalações de roda Python do sistema de arquivos do espaço de trabalho do Azure Databricks serão instaladas automaticamente nesses clusters de destino.
- O
Se você usa Poesia, faça o seguinte:
- Instale o Poetry, versão 1.6 ou superior, se ainda não estiver instalado. Para verificar a versão instalada do Poetry, execute o comando
poetry -V
oupoetry --version
. - Certifique-se de ter o Python versão 3.10 ou superior instalado. Para verificar sua versão do Python, execute o comando
python -V
oupython --version
. - Verifique se você tem a CLI do Databricks versão 0.209.0 ou superior. Para a sua versão da CLI do Databricks, execute o comando
databricks -v
oudatabricks --version
. Consulte Instalar ou atualizar a CLI do Databricks.
- Instale o Poetry, versão 1.6 ou superior, se ainda não estiver instalado. Para verificar a versão instalada do Poetry, execute o comando
Se você usar
setuptools
o , instale oswheel
pacotes esetuptools
se eles ainda não estiverem instalados, executando o seguinte comando:pip3 install --upgrade wheel setuptools
Se você pretende armazenar esse pacote com um provedor Git, adicione um
.gitignore
arquivo na raiz do projeto e adicione as seguintes entradas a esse arquivo:Poesia
.databricks dist
Ferramentas de configuração
.databricks build dist src/my_package/my_package.egg-info
Etapa 4: 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, valide o arquivo de configuração do pacote:
databricks bundle validate
Se um resumo da configuração do pacote for retornado, a validação será bem-sucedida. Se algum erro for retornado, corrija-os e repita esta etapa.
Se você fizer alguma alteração no pacote após esta etapa, repita esta etapa para verificar se a configuração do pacote ainda é válida.
Etapa 5: Criar o arquivo de roda Python e implantar o projeto local no espaço de trabalho remoto
Crie o arquivo de roda Python localmente, implante o arquivo de roda Python construído em seu espaço de trabalho, implante o bloco de anotações em seu espaço de trabalho e crie o trabalho em seu espaço de trabalho:
databricks bundle deploy -t dev
Etapa 6: Executar o projeto implantado
Execute o trabalho implantado, que usa o bloco de anotações implantado para chamar o arquivo de roda Python implantado:
databricks bundle run -t dev wheel-job
Na saída, copie e cole-a
Run URL
na barra de endereço do seu navegador da Web.Na página Saída da execução do trabalho, os seguintes resultados aparecem:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
Se você fizer alterações no pacote após esta etapa, repita as etapas 3 a 5 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.
Criar e instalar um arquivo de roda Python para um trabalho
Para construir um arquivo de roda Python com Poetry ou setuptools
e, em seguida, usar esse arquivo de roda Python em um trabalho, você deve adicionar um ou dois mapeamentos ao seu databricks.yml
arquivo.
Se você usa Poetry, você deve incluir o seguinte artifacts
mapeamento no databricks.yml
arquivo. Esse mapeamento executa o poetry build
comando e usa o pyproject.toml
arquivo que está no mesmo diretório que o databricks.yml
arquivo:
artifacts:
default:
type: whl
build: poetry build
path: .
Nota
O artifacts
mapeamento é opcional para setuptools
. Por padrão, para setuptools
o Databricks CLI executa o comando python3 setup.py bdist_wheel
e usa o setup.py
arquivo que está no mesmo diretório que o databricks.yml
arquivo. A CLI do Databricks pressupõe que você já tenha executado um comando como pip3 install --upgrade wheel setuptools
instalar os wheel
pacotes e setuptools
se eles ainda não estiverem instalados.
Além disso, o mapeamento da tarefa de libraries
trabalho deve conter um whl
valor que especifique o caminho para o arquivo de roda Python construído em relação ao arquivo de configuração no qual ele é declarado. O exemplo a seguir mostra isso em uma tarefa de bloco de anotações (as reticências indicam conteúdo omitido para brevidade):
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-job-notebook-task
notebook_task:
notebook_path: ./my_notebook.py
libraries:
- whl: ./dist/*.whl
new_cluster:
# ...
Criar e instalar um arquivo de roda Python para um pipeline
Para construir um arquivo de roda Python com Poetry ou setuptools
e, em seguida, fazer referência a esse arquivo de roda Python em um pipeline Delta Live Tables, você deve adicionar um mapeamento ao seu databricks.yml
arquivo se usar Poetry e adicionar um %pip install
comando ao seu bloco de anotações de pipeline, da seguinte maneira.
Se você usa Poetry, você deve incluir o seguinte artifacts
mapeamento no databricks.yml
arquivo. Esse mapeamento executa o poetry build
comando e usa o pyproject.toml
arquivo que está no mesmo diretório que o databricks.yml
arquivo:
artifacts:
default:
type: whl
build: poetry build
path: .
Nota
O artifacts
mapeamento é opcional para setuptools
. Por padrão, para setuptools
o Databricks CLI executa o comando python3 setup.py bdist_wheel
e usa o setup.py
arquivo que está no mesmo diretório que o databricks.yml
arquivo. A CLI do Databricks pressupõe que você já tenha executado um comando como pip3 install --upgrade wheel setuptools
instalar os wheel
pacotes e setuptools
se eles ainda não estiverem instalados.
Além disso, o bloco de anotações de pipeline relacionado deve incluir um %pip install
comando para instalar o arquivo de roda Python que é construído. Consulte Bibliotecas Python.