Dipendenze della libreria di aggregazioni di asset di Databricks
Questo articolo descrive la sintassi per dichiarare le dipendenze della libreria di aggregazioni di asset di Databricks. I bundle consentono di gestire i flussi di lavoro di Azure Databricks a livello di codice. Consultare Che cosa sono i Databricks Asset Bundle?.
Oltre ai notebook, è probabile che i processi di Azure Databricks dipendono dalle librerie per funzionare come previsto. Le dipendenze dei bundle di asset di Databricks per lo sviluppo locale vengono specificate nel requirements*.txt
file nella radice del progetto bundle, ma le dipendenze della libreria di attività del processo vengono dichiarate nei file di configurazione del bundle e sono spesso necessarie come parte della specifica del tipo di attività del processo .
I bundle forniscono supporto per le dipendenze della libreria seguenti per i processi di Azure Databricks:
- File wheel python
- File JAR (Java o Scala)
- Pacchetti PyPI, Maven o CRAN
Nota
L'eventuale supporto di una libreria dipende dalla configurazione del cluster per il processo e dall'origine della libreria. Per informazioni complete sul supporto delle librerie, vedere Librerie.
File wheel python
Per aggiungere un file ruota di Python a un'attività di processo, specificare libraries
un whl
mapping 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. Per impostazione predefinita, vedere Archiviazione di librerie nella radice DBFS deprecata e disabilitata.
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 con rotellina Python per un'attività di processo.
- Il primo file della rotellina Python è stato caricato in precedenza nell'area di lavoro di Azure Databricks o aggiunto come
include
elemento nelsync
mapping e si trova nella stessa cartella locale del file di configurazione del bundle. - Il secondo file wheel python si trova nel percorso dei file dell'area di lavoro specificato nell'area di lavoro di Azure Databricks.
- Il terzo file wheel python è stato 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:
- 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
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 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. Per impostazione predefinita, vedere Archiviazione di librerie nella radice DBFS deprecata e disabilitata.
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
Per un esempio che compila e distribuisce il file JAR, vedere Bundle che carica un file JAR in Unity Catalog.
Pacchetto PyPI
Per aggiungere un pacchetto PyPI a una definizione di attività processo, in libraries
specificare un pypi
mapping per ogni pacchetto PyPI da installare. Per ogni mapping, specificare quanto segue:
- Per
package
specificare il nome del pacchetto PyPI da installare. È supportata anche una specifica di versione esatta facoltativa. - Facoltativamente, per
repo
specificare 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 libraries
specificare un maven
mapping per ogni pacchetto Maven da installare. Per ogni mapping, specificare quanto segue:
- Per
coordinates
specificare le coordinate Maven di tipo Gradle per il pacchetto. - Facoltativamente, per
repo
specificare 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
exclusions
specificare eventuali dipendenze da escludere in modo esplicito. Vedere 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*