Dependências da biblioteca Declarative Automation Bundles
Esta página descreve a sintaxe para declarar dependências da biblioteca Declarative Automation Bundles. Os pacotes permitem o gerenciamento programático de recursos do Databricks . Veja O que são pacotes de automação declarativa?
Além do Notebook e dos arquivos de origem, seu Job, pipeline e outras cargas de trabalho provavelmente dependerão da biblioteca. As dependências da biblioteca são declaradas nos seus arquivos de configuração do pacote.
Os pacotes oferecem suporte para as seguintes dependências de biblioteca:
- Python wheel arquivo
- Arquivo JAR (Java ou Scala)
- PyPI, Maven, ou CRAN pacote
Para Python, você também pode especificar dependências em um arquivo pyproject.toml e incluí-lo em seu pacote. Veja uv e pyproject.toml.
O suporte a uma biblioteca depende da configuração do clustering e da origem da biblioteca. Para obter informações completas sobre o suporte à biblioteca, consulte Instalar a biblioteca.
Python wheel arquivo
Para adicionar um arquivo Python wheel a uma tarefa de trabalho, em libraries especifique um mapeamento whl para cada biblioteca a ser instalada. O senhor pode instalar um arquivo de roda a partir de arquivos workspace, volumes Unity Catalog, armazenamento de objetos na nuvem ou um caminho de arquivo local.
A biblioteca pode ser instalada a partir de DBFS ao usar Databricks Runtime 14.3 LTS e abaixo. No entanto, qualquer usuário do site workspace pode modificar os arquivos de biblioteca armazenados no site DBFS. Para aumentar a segurança da biblioteca em um Databricks workspace, o armazenamento de arquivos da biblioteca no DBFS root está obsoleto e desativado pelo default em Databricks Runtime 15.1 e acima. Consulte O armazenamento de biblioteca em DBFS root está obsoleto e desativado por default.
Em vez disso, o site Databricks recomenda o upload de todas as bibliotecas, incluindo Python biblioteca, JAR arquivos e Spark conectores, para workspace arquivos ou Unity Catalog volumes, ou usando repositórios de pacotes de biblioteca. Se sua carga de trabalho não for compatível com esses padrões, o senhor também poderá usar a biblioteca armazenada no armazenamento de objetos na nuvem.
O exemplo a seguir mostra como instalar três arquivos Python wheel para uma tarefa de trabalho.
- O primeiro arquivo Python wheel foi carregado anteriormente para o Databricks workspace ou adicionado como um item
includeno mapeamentosynce está na mesma pasta local que o arquivo de configuração do pacote. - O segundo arquivo Python wheel está no local especificado para os arquivos workspace no site Databricks workspace.
- O terceiro arquivo Python wheel foi carregado anteriormente para o volume denominado
my-volumeno site Databricks workspace.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
Arquivo JAR (Java ou Scala)
Para adicionar um arquivo JAR a uma tarefa de trabalho, em libraries especifique um mapeamento jar para cada biblioteca a ser instalada. O senhor pode instalar um JAR a partir dos volumes do Unity Catalog, do armazenamento de objetos na nuvem ou de um caminho de arquivo local.
A biblioteca pode ser instalada a partir de DBFS ao usar Databricks Runtime 14.3 LTS e abaixo. No entanto, qualquer usuário do site workspace pode modificar os arquivos de biblioteca armazenados no site DBFS. Para aumentar a segurança da biblioteca em um Databricks workspace, o armazenamento de arquivos da biblioteca no DBFS root está obsoleto e desativado pelo default em Databricks Runtime 15.1 e acima. Consulte O armazenamento de biblioteca em DBFS root está obsoleto e desativado por default.
Em vez disso, o site Databricks recomenda o upload de todas as bibliotecas, incluindo Python biblioteca, JAR arquivos e Spark conectores, para workspace arquivos ou Unity Catalog volumes, ou usando repositórios de pacotes de biblioteca. Se sua carga de trabalho não for compatível com esses padrões, o senhor também poderá usar a biblioteca armazenada no armazenamento de objetos na nuvem.
O exemplo a seguir mostra como instalar um arquivo JAR que foi carregado anteriormente no volume denominado my-volume na pasta Databricks workspace.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Para obter um exemplo de configuração que cria e implanta o JAR, consulte o Bundle que carrega um arquivo JAR para o Unity Catalog. Para um tutorial que cria um projeto de pacote que compila e implanta um JAR Scala , consulte Criar um JAR Scala usando Pacotes de Automação Declarativa.
PyPI pacote
Para adicionar um pacote PyPI a uma definição de tarefa de trabalho, em libraries, especifique um mapeamento pypi para cada pacote PyPI a ser instalado. Para cada mapeamento, especifique o seguinte:
- Para
package, especifique o nome do pacote PyPI a ser instalado. Uma especificação opcional da versão exata também é suportada. - Opcionalmente, para
repo, especifique o repositório onde o pacote PyPI pode ser encontrado. Se não for especificado, será usado o índice defaultpip(https://pypi.org/simple/).
O exemplo a seguir mostra como instalar dois pacotes PyPI.
- O primeiro pacote PyPI usa a versão de pacote especificada e o índice default
pip. - O segundo pacote PyPI usa a versão do pacote especificada e o índice
pipexplicitamente especificado.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Maven pacote
Para adicionar um pacote Maven a uma definição de tarefa de trabalho, em libraries, especifique um mapeamento maven para cada pacote Maven a ser instalado. Para cada mapeamento, especifique o seguinte:
- Para
coordinates, especifique as coordenadas Maven no estilo Gradle para o pacote. - Opcionalmente, para
repo, especifique o repositório Maven para instalar o pacote Maven. Se omitido, o Repositório Central Maven e o Repositório de pacotes Spark serão pesquisados. - Opcionalmente, para
exclusions, especifique quaisquer dependências a serem excluídas explicitamente. Consulte Exclusões de dependência do Maven.
O exemplo a seguir mostra como instalar dois pacotes Maven.
- O primeiro pacote Maven usa as coordenadas de pacote especificadas e procura esse pacote no Repositório Central Maven e no Repositório de pacotes Spark.
- O segundo pacote Maven usa as coordenadas de pacote especificadas, procura esse pacote apenas no Repositório Central Maven e não inclui nenhuma das dependências desse pacote que correspondam ao padrão especificado.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*
Requisitos do Python.txt
uv é o método recomendado para gerenciar dependências de bibliotecas Python . Veja uv e pyproject.toml.
Python As dependências da biblioteca também podem ser especificadas em um arquivo requirements*.txt que é incluído como parte da definição da tarefa do trabalho. O caminho para o arquivo pode ser um caminho local, um caminho workspace ou um caminho de volume Unity Catalog.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv e pyproject.toml
Para incluir dependências de biblioteca Python usando uv, especifique-as no arquivo pyproject.toml que faz parte do pacote e defina uma dependência de ambiente para incluí-las. Para obter mais informações sobre uv, consulte Introdução a uv.
Por exemplo, o seguinte arquivo pyproject.toml adiciona numpy como uma dependência:
[project]
name = "test"
version = "0.0.1"
authors = [{ name = "someone@example.com" }]
requires-python = ">=3.10,<3.13"
dependencies = [
# Any dependencies for jobs and pipelines in this project can be added here
#
# LIMITATION: for pipelines, dependencies are cached during development;
# add dependencies to the 'environment' section of your pipeline.yml file instead
"numpy==1.25.2"
]
[dependency-groups]
dev = [
"pytest",
"ruff",
"databricks-dlt",
"databricks-connect>=15.4,<15.5",
"ipykernel",
]
[project.scripts]
main = "test.main:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.ruff]
line-length = 120
Agora edite a configuração de recursos do seu pacote para incluir todas as dependências definidas em pyproject.toml adicionando um ambiente editável que aponte para a pasta onde pyproject.toml está implantado, como neste exemplo de configuração pipeline :
resources:
pipelines:
test_uv_etl:
name: test_uv_etl
catalog: ${var.catalog}
schema: ${var.schema}
serverless: true
root_path: '../src/test_uv_etl'
libraries:
- glob:
include: ../src/test_uv_etl/transformations/**
environment:
dependencies:
- --editable ${workspace.file_path}
Para criar artefatos de pacote usando uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...