Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página descreve a sintaxe para declarar dependências de bibliotecas de Pacotes de Automação Declarativa. Os bundles permitem a gestão programática dos recursos do Databricks. Veja o que são os Pacotes de Automação Declarativa?
Para além dos notebooks e ficheiros de código-fonte, os seus trabalhos, pipelines e outras cargas de trabalho provavelmente dependerão das bibliotecas. As dependências da biblioteca são declaradas nos ficheiros de configuração do bundle.
Os pacotes fornecem suporte para as seguintes dependências de biblioteca:
- Ficheiro de roda Python
- ficheiro JAR (Java ou Scala)
- Pacotes PyPI, Maven ou CRAN
Para Python, também podes especificar dependências num ficheiro pyproject.toml e incluí-las no teu bundle. Veja uv e pyproject.toml.
Nota
O suporte para uma biblioteca depende da configuração do cluster e da origem da biblioteca. Para obter informações completas de suporte à biblioteca, consulte Instalar bibliotecas.
Ficheiro de roda Python
Para adicionar um ficheiro de volante Python a uma tarefa de trabalho, em libraries especificar um mapeamento whl para cada biblioteca a instalar. Você pode instalar um arquivo de roda a partir de arquivos de espaço de trabalho, volumes do Catálogo Unity, armazenamento de objetos na nuvem ou um caminho de arquivo local.
Importante
As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas num espaço de trabalho Azure Databricks, o armazenamento de ficheiros de biblioteca na raiz do DBFS está obsoleto e desativado por padrão no Databricks Runtime 15.1 e superiores. Consulte O armazenamento de bibliotecas na raiz do DBFS está obsoleto e desativado por predefinição.
Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, ficheiros JAR e conectores Spark, para ficheiros do espaço de trabalho ou volumes do Unity Catalog. Alternativamente, pode usar repositórios de pacotes de bibliotecas. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.
O exemplo seguinte mostra como instalar três ficheiros Python wheel para uma tarefa de trabalho.
- O primeiro arquivo .whl do Python foi ou previamente carregado para o espaço de trabalho Azure Databricks, ou adicionado como um item
includenosyncmapeamento, e está na mesma pasta local do ficheiro de configuração do bundle. - O segundo ficheiro do volante Python encontra-se na localização especificada dos ficheiros de espaço de trabalho no espaço de trabalho do Azure Databricks.
- O terceiro ficheiro wheel do Python foi anteriormente carregado para o volume chamado
my-volumeno espaço de trabalho do Azure Databricks.
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
ficheiro JAR (Java ou Scala)
Para adicionar um ficheiro JAR a uma tarefa, especifique um mapeamento librariesjar para cada biblioteca a ser instalada. Você pode instalar um JAR a partir de volumes do Catálogo Unity, armazenamento de objetos na nuvem ou um caminho de arquivo local.
Importante
As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas num espaço de trabalho Azure Databricks, o armazenamento de ficheiros de biblioteca na raiz do DBFS está obsoleto e desativado por padrão no Databricks Runtime 15.1 e superiores. Consulte O armazenamento de bibliotecas na raiz do DBFS está obsoleto e desativado por predefinição.
Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, ficheiros JAR e conectores Spark, para ficheiros do espaço de trabalho ou volumes do Unity Catalog. Alternativamente, pode usar repositórios de pacotes de bibliotecas. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.
O exemplo seguinte mostra como instalar um ficheiro JAR que foi previamente carregado para o volume chamado my-volume no espaço de trabalho Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Para ver uma configuração que compila e implementa o JAR, consulte Bundle que carrega um JAR no Unity Catalog. Para um tutorial que cria um projeto bundle que constrói e implementa um JAR Scala, veja Construir um JAR Scala usando Pacotes de Automação Declarativa.
Pacote PyPI
Para adicionar um pacote PyPI a uma definição de tarefa de trabalho, em libraries, especifique um pypi mapeamento 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 de versão exata opcional também é suportada. - Opcionalmente, para
repo, especifique o repositório onde o pacote PyPI pode ser encontrado. Se não for especificado, o índice padrãopipserá usado (https://pypi.org/simple/).
O exemplo a seguir mostra como instalar dois pacotes PyPI.
- O primeiro pacote PyPI usa a versão do pacote especificada e o índice padrão
pip. - O segundo pacote PyPI usa a versão do pacote especificada e o índice explicitamente especificado
pip.
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/
Pacote Maven
Para adicionar um pacote Maven a uma definição de tarefa, 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 a partir do qual instalar o pacote Maven. Se omitido, o Repositório Central do Maven e o Repositório de Pacotes do Spark serão pesquisados. - Opcionalmente, para
exclusions, especifique quaisquer dependências a serem excluídas explicitamente. Consulte Exclusões de dependências 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 Maven Central Repository e no Spark Packages Repository.
- O segundo pacote Maven usa as coordenadas de pacote especificadas, procura esse pacote somente no Maven Central Repository e não inclui nenhuma das dependências deste 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*
Python requirements.txt
Nota
uv é o método recomendado para gerir dependências de bibliotecas Python. Veja uv e pyproject.toml.
As dependências de bibliotecas Python também podem ser especificadas num ficheiro requirements*.txt que é incluído como parte da definição da tarefa. O caminho para o arquivo pode ser um caminho local, um caminho de espaço de trabalho ou um caminho de volume do Catálogo Unity.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv e pyproject.toml
Para incluir dependências de bibliotecas Python usando uv, indique-as no ficheiro pyproject.toml que faz parte do conjunto e depois defina uma dependência de ambiente para as incluir. Para mais informações sobre uv, veja Introdução ao UV.
Por exemplo, o ficheiro seguinte 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 do seu conjunto de recursos para incluir todas as dependências definidas no pyproject.toml , adicionando um ambiente editável que aponte para a pasta onde pyproject.toml é implementada, como neste exemplo de configuração de 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 construir artefactos em conjunto usando uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...