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 tuo pacchetto. 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'attività lavorativa, specificare una mappatura 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 di 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.
Databricks consiglia invece di caricare tutte le librerie, incluse le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi di Unity Catalog o usando 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.
L'esempio seguente illustra come installare tre file Python wheel per un'attività lavorativa.
- Il primo file della rotellina Python è stato caricato in precedenza nell'area di lavoro di Azure Databricks o aggiunto come
includeelemento nelsyncmapping e si trova nella stessa cartella locale del file di configurazione del bundle. - Il secondo file wheel di Python si trova nel percorso specificato dei file nell'area di lavoro di Azure Databricks.
- Il terzo file wheel python è stato caricato in precedenza nel volume denominato
my-volumenell'area di lavoro di 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 di 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.
Databricks consiglia invece di caricare tutte le librerie, incluse le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi di Unity Catalog o usando 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.
L'esempio seguente illustra come installare un file JAR caricato in precedenza nel volume denominato my-volume nell'area di lavoro di 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 requirements*.txt file incluso come parte della definizione dell'attività di processo. 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
Le dipendenze della libreria Python possono essere specificate in un pyproject.toml file incluso come parte del bundle:
[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
Creare artefatti bundle usando uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...
Per altre informazioni su uv, vedere Introduzione all'uv