Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina descrive la sintassi per dichiarare le dipendenze della libreria dei bundle di automazione dichiarativa. I bundle consentono la gestione a livello di codice delle risorse di Databricks. Vedere Che cosa sono i bundle di automazione dichiarativa?.
Oltre ai notebook e ai file di origine, i tuoi processi, le pipeline e altri carichi di lavoro dipenderanno probabilmente dalle librerie. Le dipendenze della libreria vengono dichiarate nei file di configurazione del bundle.
I pacchetti forniscono supporto per le dipendenze della libreria riportate di seguito:
- file wheel di Python
- File JAR (Java o Scala)
- Pacchetti PyPI, Maven o CRAN
Per Python, puoi anche specificare le dipendenze in un file pyproject.toml e includerlo nel bundle. Vedere uv e pyproject.toml.
Nota
L'eventuale supporto di una libreria dipende dalla configurazione del cluster e dall'origine della libreria. Per informazioni complete sul supporto delle librerie, vedere Installare le librerie.
file wheel di Python
Per aggiungere un file wheel di Python a un compito di lavoro, in libraries specificare un mapping whl per ogni libreria da installare. È possibile installare un file wheel dai file dell'area di lavoro, dai volumi del catalogo Unity, dall'archiviazione di oggetti cloud o da un percorso di file locale.
Importante
Le librerie possono essere installate da DBFS quando si usa Databricks Runtime 14.3 LTS e versioni successive. Tuttavia, qualsiasi utente dell'area di lavoro può modificare i file di libreria archiviati in DBFS. Per migliorare la sicurezza delle librerie in un'area di lavoro Azure Databricks, l'archiviazione dei file di libreria nella radice DBFS è deprecata e disabilitata per impostazione predefinita in Databricks Runtime 15.1 e versioni successive. Vedi Archiviazione di librerie nella radice DBFS è deprecata e disabilitata per impostazione predefinita.
Invece, Databricks raccomanda di caricare tutte le librerie, comprese le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi del catalogo Unity, oppure di utilizzare i repository dei pacchetti di libreria. Se il carico di lavoro non supporta questi modelli, è anche possibile usare le librerie archiviate nell'archiviazione di oggetti cloud.
Nell'esempio seguente viene illustrato come installare tre file wheel Python per un'attività di lavoro.
- Il primo file wheel di Python è stato caricato in precedenza nell'area di lavoro Azure Databricks o aggiunto come elemento
includenelsyncmapping ed è nella stessa cartella locale del file di configurazione del bundle. - Il secondo file Python wheel si trova nella posizione specificata dei file dell'area di lavoro nell'area di lavoro Azure Databricks.
- Il terzo file wheel Python è stato caricato in precedenza nel volume denominato
my-volumenell'area di lavoro 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
file JAR (Java o Scala)
Per aggiungere un file JAR a un'attività di processo, specificare libraries un jar mapping per ogni libreria da installare. È possibile installare un file JAR dai volumi del catalogo Unity, dall'archiviazione di oggetti cloud o da un percorso di file locale.
Importante
Le librerie possono essere installate da DBFS quando si usa Databricks Runtime 14.3 LTS e versioni successive. Tuttavia, qualsiasi utente dell'area di lavoro può modificare i file di libreria archiviati in DBFS. Per migliorare la sicurezza delle librerie in un'area di lavoro Azure Databricks, l'archiviazione dei file di libreria nella radice DBFS è deprecata e disabilitata per impostazione predefinita in Databricks Runtime 15.1 e versioni successive. Vedi Archiviazione di librerie nella radice DBFS è deprecata e disabilitata per impostazione predefinita.
Invece, Databricks raccomanda di caricare tutte le librerie, comprese le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi del catalogo Unity, oppure di utilizzare i repository dei pacchetti di libreria. Se il carico di lavoro non supporta questi modelli, è anche possibile usare le librerie archiviate nell'archiviazione di oggetti cloud.
Nell'esempio seguente viene illustrato come installare un file JAR caricato in precedenza nel volume denominato my-volume nell'area di lavoro Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Ad esempio, la configurazione che compila e distribuisce il file JAR, vedere Bundle che carica un file JAR in Unity Catalog. Per un'esercitazione che crea un progetto bundle che compila e distribuisce un JAR Scala, vedere Creare un JAR Scala utilizzando bundle di Automazione Dichiarativa.
Pacchetto PyPI
Per aggiungere un pacchetto PyPI a una definizione di attività del processo, in libraries specificare un pypi mapping per ogni pacchetto PyPI da installare. Per ogni mappatura, specificare quanto segue:
- Per
packagespecificare il nome del pacchetto PyPI da installare. È supportata anche una specifica di versione esatta facoltativa. - Facoltativamente, per
repospecificare il repository in cui è possibile trovare il pacchetto PyPI. Se non specificato, viene usato l'indice predefinitopip(https://pypi.org/simple/).
L'esempio seguente illustra come installare due pacchetti PyPI.
- Il primo pacchetto PyPI usa la versione del pacchetto specificata e l'indice predefinito
pip. - Il secondo pacchetto PyPI usa la versione del pacchetto specificata e l'indice specificato in modo esplicito
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/
Pacchetto Maven
Per aggiungere un pacchetto Maven a una definizione di attività di processo, in librariesspecificare un'associazione maven per ciascun pacchetto Maven da installare. Per ogni mappatura, specificare quanto segue:
- Per
coordinates, specificare le coordinate Maven in stile Gradle per il pacchetto. - Facoltativamente, per
repospecificare il repository Maven da cui installare il pacchetto Maven. Se omesso, vengono eseguite ricerche sia nel repository centrale Maven che nel repository dei pacchetti Spark. - Facoltativamente, per
exclusionsspecificare eventuali dipendenze da escludere in modo esplicito. Consulta Esclusioni delle dipendenze Maven.
Nell'esempio seguente viene illustrato come installare due pacchetti Maven.
- Il primo pacchetto Maven usa le coordinate del pacchetto specificate e cerca questo pacchetto sia nel repository centrale Maven che nel repository dei pacchetti Spark.
- Il secondo pacchetto Maven usa le coordinate del pacchetto specificate, cerca questo pacchetto solo nel repository centrale Maven e non include alcuna delle dipendenze di questo pacchetto che corrispondono al modello specificato.
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 è il metodo consigliato per la gestione delle dipendenze della libreria Python. Vedere uv e pyproject.toml.
Le dipendenze della libreria Python possono essere specificate anche in un file requirements*.txt incluso come parte della definizione del compito del job. Il percorso del file può essere un percorso locale, un percorso dell'area di lavoro o un percorso del volume del catalogo Unity.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv e pyproject.toml
Per includere le dipendenze della libreria Python usando uv, specificarle nel file pyproject.toml che fa parte del bundle e quindi definire una dipendenza dell'ambiente per includerle. Per altre informazioni su uv, vedere Introduzione all'uv.
Ad esempio, il file seguente pyproject.toml aggiunge numpy come dipendenza:
[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
Modificare ora la configurazione della risorsa bundle per includere tutte le dipendenze definite in pyproject.toml aggiungendo un ambiente modificabile che punta alla cartella in cui pyproject.toml viene distribuita, ad esempio in questa configurazione della pipeline di esempio:
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}
Per compilare artefatti bundle usando uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...