Utilità libreria (dbutils.library) (legacy)

Nota

dbutils.library.install e dbutils.library.installPyPI le API vengono rimosse in Databricks Runtime 11.0 e versioni successive. La maggior parte dei comandi dell'utilità di libreria è deprecata. La maggior parte delle utilità di libreria non è disponibile in Databricks Runtime ML. Per informazioni su dbutils.library.restartPython, vedere Riavviare il processo Python in Azure Databricks.

Questa documentazione è stata ritirata e potrebbe non essere aggiornata. I prodotti, i servizi o le tecnologie menzionati in questo contenuto non sono più supportati.

Databricks consiglia vivamente di usare %pip i comandi magic per installare librerie con ambito notebook. Vedere Librerie Python con ambito notebook.

Per la documentazione completa sulle funzionalità delle utilità di Databricks, vedere Informazioni di riferimento sulle utilità di Databricks (dbutils).

Comandi: install, installPyPI, list, restartPython), updateCondaEnv

L'utilità di libreria consente di installare le librerie Python e creare un ambiente con ambito una sessione del notebook. Le librerie sono disponibili sia sul driver che sugli executor, quindi è possibile farvi riferimento nelle funzioni definite dall'utente. Ciò permette:

  • Dipendenze della libreria di un notebook da organizzare all'interno del notebook stesso.
  • Gli utenti dei notebook con dipendenze di libreria diverse per condividere un cluster senza interferenze.

Lo scollegamento di un notebook elimina definitivamente questo ambiente. È tuttavia possibile ricrearlo eseguendo nuovamente i comandi dell'API della libreria install nel notebook. Vedere l'API restartPython per informazioni su come reimpostare lo stato del notebook senza perdere l'ambiente.

Le utilità di libreria sono abilitate per impostazione predefinita. Di conseguenza, per impostazione predefinita, l'ambiente Python per ogni notebook è isolato usando un eseguibile Python separato creato quando il notebook è collegato e eredita l'ambiente Python predefinito nel cluster. Le librerie installate tramite uno script init nell'ambiente Python di Azure Databricks sono ancora disponibili. È possibile disabilitare questa funzionalità impostando spark.databricks.libraryIsolation.enabled su false.

Questa API è compatibile con l'installazione della libreria a livello di cluster esistente tramite l'API dell'interfaccia utente e delle librerie. Le librerie installate tramite questa API hanno priorità più alta rispetto alle librerie a livello di cluster.

Per elencare i comandi disponibili, eseguire dbutils.library.help().

install(path: String): boolean -> Install the library within the current notebook session
installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean -> Install the PyPI library within the current notebook session
list: List -> List the isolated libraries added for the current notebook session via dbutils
restartPython: void -> Restart python process for the current notebook session
updateCondaEnv(envYmlContent: String): boolean -> Update the current notebook's Conda environment based on the specification (content of environment

Comando install (dbutils.library.install)

Dato un percorso a una libreria, installa tale libreria all'interno della sessione del notebook corrente. Le librerie installate chiamando questo comando sono disponibili solo per il notebook corrente.

Per visualizzare la Guida per questo comando, eseguire dbutils.library.help("install").

In questo esempio viene installata una .egg libreria o .whl all'interno di un notebook.

Importante

dbutils.library.install viene rimosso in Databricks Runtime 11.0 e versioni successive.

Databricks consiglia di inserire tutti i comandi di installazione della libreria nella prima cella del notebook e chiamare restartPython alla fine di tale cella. Lo stato del notebook Python viene reimpostato dopo l'esecuzione restartPython. Il notebook perde tutto lo stato, incluse le variabili locali, le librerie importate e altri stati temporanei. È quindi consigliabile installare le librerie e reimpostare lo stato del notebook nella prima cella del notebook.

Le origini di libreria accettate sono dbfs, abfss, adle wasbs.

dbutils.library.install("abfss:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("abfss:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Nota

È possibile installare direttamente file wheel personalizzati usando %pip. Nell'esempio seguente si presuppone che il file della rotellina della libreria sia stato caricato in DBFS:

%pip install /dbfs/path/to/your/library.whl

I file Egg non sono supportati da pip e i file wheel sono considerati lo standard per la creazione e la creazione di pacchetti binari per Python. Tuttavia, se si vuole usare un file egg in modo compatibile con %pip, è possibile usare la soluzione alternativa seguente:

# This step is only needed if no %pip commands have been run yet.
# It will trigger setting up the isolated notebook environment
%pip install <any-lib>  # This doesn't need to be a real library; for example "%pip install any-lib" would work
import sys
# Assuming the preceding step was completed, the following command
# adds the egg file to the current notebook environment
sys.path.append("/local/path/to/library.egg")

Comando installPyPI (dbutils.library.installPyPI)

Dato un pacchetto Python Package Index (PyPI), installare il pacchetto all'interno della sessione del notebook corrente. Le librerie installate chiamando questo comando sono isolate tra i notebook.

Per visualizzare la Guida per questo comando, eseguire dbutils.library.help("installPyPI").

Questo esempio installa un pacchetto PyPI in un notebook. version, repoe extras sono facoltativi. Usare l'argomento extras per specificare la funzionalità Extra (requisiti aggiuntivi).

dbutils.library.installPyPI("pypipackage", version="version", repo="repo", extras="extras")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Importante

dbutils.library.installPyPI viene rimosso in Databricks Runtime 11.0 e versioni successive.

Le version chiavi e extras non possono far parte della stringa del pacchetto PyPI. Ad esempio: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") non è valido. Usare gli version argomenti e extras per specificare la versione e le informazioni aggiuntive come indicato di seguito:

dbutils.library.installPyPI("azureml-sdk", version="1.19.0", extras="databricks")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Nota

Quando si sostituiscono dbutils.library.installPyPI i comandi con %pip i comandi, l'interprete Python viene riavviato automaticamente. È possibile eseguire il comando di installazione come indicato di seguito:

%pip install azureml-sdk[databricks]==1.19.0

Questo esempio specifica i requisiti della libreria in un notebook e li installa usando %run nell'altro. A tale scopo, definire prima le librerie da installare in un notebook. In questo esempio viene usato un notebook denominato InstallDependencies.

dbutils.library.installPyPI("torch")
dbutils.library.installPyPI("scikit-learn", version="1.19.1")
dbutils.library.installPyPI("azureml-sdk", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Installarli quindi nel notebook che richiede tali dipendenze.

%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...

Questo esempio reimposta lo stato del notebook Python mantenendo l'ambiente. Questa tecnica è disponibile solo nei notebook Python. Ad esempio, è possibile usare questa tecnica per ricaricare le librerie di Azure Databricks preinstallate con una versione diversa:

dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy

È anche possibile usare questa tecnica per installare librerie come tensorflow che devono essere caricate all'avvio del processo:

dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow

comando list (dbutils.library.list)

Elenca le librerie isolate aggiunte per la sessione del notebook corrente tramite l'utilità libreria. Non sono incluse le librerie collegate al cluster.

Per visualizzare la Guida per questo comando, eseguire dbutils.library.help("list").

Questo esempio elenca le librerie installate in un notebook.

dbutils.library.list()

Nota

L'equivalente di questo comando che usa %pip è:

%pip freeze

Comando updateCondaEnv (dbutils.library.updateCondaEnv)

Aggiorna l'ambiente Conda del notebook corrente in base al contenuto di environment.yml. Questo metodo è supportato solo per Databricks Runtime in Conda.

Per visualizzare la Guida per questo comando, eseguire dbutils.library.help("updateCondaEnv").

Questo esempio aggiorna l'ambiente Conda del notebook corrente in base al contenuto della specifica specificata.

dbutils.library.updateCondaEnv(
"""
channels:
  - anaconda
dependencies:
  - gensim=3.4
  - nltk=3.4
""")