Bibliothekshilfsprogramm (dbutils.library) (Legacy)

Hinweis

dbutils.library.install- und dbutils.library.installPyPI-APIs werden in Databricks Runtime 11.0 und höher entfernt. Die meisten Bibliothekshilfsprogrammbefehle sind veraltet. Die meisten Hilfsprogramme für Bibliotheken sind in Databricks Runtime ML nicht verfügbar. Informationen zu dbutils.library.restartPython finden Sie unter Neustarten des Python-Prozesses in Azure Databricks.

Diese Dokumentation wurde eingestellt und wird unter Umständen nicht aktualisiert. Die in diesem Inhalt erwähnten Produkte, Dienste oder Technologien werden nicht mehr unterstützt.

Databricks empfiehlt dringend die Verwendung von %pip-Magic-Befehlen zum Installieren von Bibliotheken im Notebookbereich. Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich.

Die vollständige Dokumentation zur Funktionalität von Databricks-Hilfsprogrammen finden Sie in der Referenz zu Databricks-Hilfsprogrammen (dbutils).

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

Das Bibliothekshilfsprogramm ermöglicht die Installation von Python-Bibliotheken und die Erstellung einer Umgebung im Bereich einer Notebooksitzung. Die Bibliotheken sind sowohl für den Treiber als auch für die Executors verfügbar, sodass Sie in benutzerdefinierten Funktionen darauf verweisen können. Hierdurch wird Folgendes ermöglicht:

  • Bibliotheksabhängigkeiten eines Notebooks können im Notebook selbst organisiert werden.
  • Notebookbenutzer mit unterschiedlichen Bibliotheksabhängigkeiten können einen Cluster ohne Störungen gemeinsam nutzen.

Durch das Trennen eines Notebooks wird diese Umgebung zerstört. Sie können sie jedoch neu erstellen, indem Sie die install-API-Befehle der Bibliothek erneut im Notebook ausführen. Informationen dazu, wie Sie den Status Ihres Notebooks zurücksetzen können, ohne Ihre Umgebung zu verlieren, finden Sie in der restartPython-API.

Die Bibliothekshilfsprogramme sind standardmäßig aktiviert. Daher wird die Python-Umgebung für jedes Notebook standardmäßig mithilfe einer separaten ausführbaren Python-Datei isoliert, die beim Anfügen des Notebooks erstellt wird und die Python-Standardumgebung im Cluster erbt. Bibliotheken, die über ein Initialisierungsskript in der Azure Databricks Python-Umgebung installiert werden, sind weiterhin verfügbar. Sie können dieses Feature deaktivieren, indem Sie spark.databricks.libraryIsolation.enabled auf false festlegen.

Diese API ist mit der vorhandenen clusterweiten Bibliotheksinstallation über die Benutzeroberfläche und die Bibliotheks-API kompatibel. Bibliotheken, die über diese API installiert werden, haben eine höhere Priorität als clusterweite Bibliotheken.

Führen Sie dbutils.library.help() aus, um die verfügbaren Befehle aufzulisten.

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

install-Befehl (dbutils.library.install)

Wenn ein Pfad zu einer Bibliothek vorgegeben ist, wird diese Bibliothek innerhalb der aktuellen Notebooksitzung installiert. Die mit diesem Befehl installierten Bibliotheken sind nur für das aktuelle Notebook verfügbar.

Führen Sie dbutils.library.help("install") aus, um Hilfe zu diesem Befehl anzuzeigen.

In diesem Beispiel wird eine .egg- oder .whl-Bibliothek in einem Notebook installiert.

Wichtig

dbutils.library.install wurde in Databricks Runtime 11.0 und höher entfernt.

Databricks empfiehlt, alle Befehle zur Bibliotheksinstallation in die erste Zelle Ihres Notebooks einzufügen und restartPython am Ende dieser Zelle aufzurufen. Der Zustand des Python-Notebooks wird nach der Ausführung von restartPython zurückgesetzt. Das Notebook verliert alle Zustandsinformationen, einschließlich, aber nicht beschränkt auf lokale Variablen, importierte Bibliotheken und andere flüchtige Zustandsdaten. Deshalb wird empfohlen, die Bibliotheken zu installieren und den Notebookzustand in der ersten Notebookzelle zurückzusetzen.

Die akzeptierten Bibliotheksquellen sind dbfs, abfss, adl und 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.

Hinweis

Sie können benutzerdefinierte Wheel-Dateien mithilfe von %pip direkt installieren. Im folgenden Beispiel wird davon ausgegangen, dass Sie die Wheel-Datei für Ihre Bibliothek in DBFS hochgeladen haben:

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

EGG-Dateien werden von pip nicht unterstützt, und das Wheel-Dateien werden als Standard für Build- und Binärpakete für Python betrachtet. Wenn Sie eine EGG-Datei jedoch auf eine Art und Weise verwenden möchten, die mit %pip kompatibel ist, können Sie die folgende Problemumgehung verwenden:

# 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")

installPyPI-Befehl (dbutils.library.installPyPI)

Wenn ein PyPI-Paket (Python Package Index) vorhanden ist, wird dieses Paket innerhalb der aktuellen Notebooksitzung installiert. Die mit diesem Befehl installierten Bibliotheken werden zwischen Notebooks isoliert.

Führen Sie dbutils.library.help("installPyPI") aus, um Hilfe zu diesem Befehl anzuzeigen.

In diesem Beispiel wird ein PyPI-Paket in einem Notebook installiert. version, repo und extras sind optional. Verwenden Sie das Argument extras, um das Extras-Feature anzugeben (zusätzliche Anforderungen).

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.

Wichtig

dbutils.library.installPyPI wurde in Databricks Runtime 11.0 und höher entfernt.

Die Schlüssel version und extras dürfen nicht in der PyPI-Paketzeichenfolge enthalten sein. Beispielsweise ist die folgende Zeichenfolge unzulässig: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0"). Verwenden Sie die Argumente version und extras wie folgt, um Versionsinformationen und zusätzlichen Informationen anzugeben:

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.

Hinweis

Wenn Sie dbutils.library.installPyPI-Befehle durch %pip-Befehle ersetzen, wird der Python-Interpreter automatisch neu gestartet. Sie können den Installationsbefehl wie folgt ausführen:

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

In diesem Beispiel werden die Bibliotheksanforderungen in einem Notebook angegeben und mithilfe von %run im anderen Notebook installiert. Definieren Sie hierzu zunächst die Bibliotheken, die in einem Notebook installiert werden sollen. In diesem Beispiel wird ein Notebook mit dem Namen InstallDependencies verwendet.

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.

Führen Sie dann die Installation in dem Notebook durch, das diese Abhängigkeiten benötigt.

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

In diesem Beispiel wird der Zustand des Python-Notebooks zurückgesetzt, während die Umgebung beibehalten wird. Diese Technik steht nur in Python-Notebooks zur Verfügung. Sie können mithilfe dieser Technik zum Beispiel Bibliotheken neu laden, die von Azure Databricks mit einer anderen Version vorinstalliert wurden:

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

Außerdem können Sie mit diesem Verfahren Bibliotheken wie z. B. TensorFlow installieren, die beim Start des Prozesses geladen werden müssen:

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

list-Befehl (dbutils.library.list)

Listet die isolierten Bibliotheken auf, die über das Bibliothekshilfsprogramm für die aktuelle Notebooksitzung hinzugefügt wurden. Dies schließt keine Bibliotheken ein, die an den Cluster angefügt sind.

Führen Sie dbutils.library.help("list") aus, um Hilfe zu diesem Befehl anzuzeigen.

In diesem Beispiel werden die in einem Notebook installierten Bibliotheken aufgelistet.

dbutils.library.list()

Hinweis

Die Entsprechung dieses Befehls mit Verwendung von %pip lautet folgendermaßen:

%pip freeze

updateCondaEnv-Befehl (dbutils.library.updateCondaEnv)

Aktualisiert die Conda-Umgebung des aktuellen Notebooks basierend auf dem Inhalt von environment.yml. Diese Methode wird nur für Databricks Runtime in Conda unterstützt.

Führen Sie dbutils.library.help("updateCondaEnv") aus, um Hilfe zu diesem Befehl anzuzeigen.

In diesem Beispiel wird die Conda-Umgebung des aktuellen Notebooks basierend auf dem Inhalt der angegebenen Spezifikation aktualisiert.

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