Condividi tramite


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 nel syncmapping 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 librariesspecificare un pypi mapping per ogni pacchetto PyPI da installare. Per ogni mapping, 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 predefinito pip (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 maven mapping per ogni pacchetto Maven da installare. Per ogni mapping, specificare quanto segue:

  • Per coordinatesspecificare le coordinate Maven di tipo 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. 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*