Bibliotheken
Sie können eine Bibliothek installieren, um Drittanbietercode oder benutzerdefinierten Code für Notebooks und Aufträge verfügbar zu machen, die in Ihren Clustern ausgeführt werden. Bibliotheken können in Python, Java, Scala und R geschrieben werden. Sie können Java-, Scala- und Python-Bibliotheken hochladen und auf externe Pakete in PyPI-, Maven- und CRAN-Repositorys verweisen.
Azure Databricks umfasst viele allgemeine Bibliotheken in Databricks Runtime. Im Unterabschnitt Systemumgebung der Databricks Runtime-Versionshinweise für Ihre Databricks Runtime-Version finden Sie Informationen zu den in Databricks Runtime enthaltenen Bibliotheken.
Hinweis
Der Microsoft-Support leistet Hilfe beim Isolieren und Beheben von Problemen mit Bibliotheken, die über Azure Databricks installiert und verwaltet werden. Für Drittanbieterkomponenten, z. B. Bibliotheken, leistet Microsoft Support in wirtschaftlich angemessenem Maße, um Sie bei der Problembehandlung zu unterstützen. Der Microsoft-Support hilft nach bestem Wissen und ist ggf. in der Lage, das Problem zu beheben. Für auf GitHub gehostete Open-Source-Connectors und -Projekte wird empfohlen, Probleme auf Github zu melden und nachzuverfolgen. Entwicklungsarbeiten, beispielsweise das Schattieren von JAR-Dateien oder das Entwickeln von Python-Bibliotheken, werden nicht durch den standardmäßigen Prozess für Supportanfragen unterstützt: Sie erfordern eine Beratung für eine schnellere Lösung. Unter Umständen werden Sie vom Support gebeten, andere Kanäle für Open-Source-Technologien in Anspruch zu nehmen, über die Sie Zugang zu Expertenwissen für diese Technologien haben. Es sind mehrere Communitywebsites vorhanden. Zwei Beispiele hierfür sind die Microsoft-Seite mit den häufig gestellten Fragen zu Azure Databricks und Stack Overflow.
Bibliotheken im Clusterbereich
Sie können Bibliotheken auf Clustern installieren, damit sie von allen Notizbüchern und Aufträgen verwendet werden können, die auf dem Cluster ausgeführt werden. Databricks unterstützt Python-, JAR- und R-Bibliotheken. Weitere Informationen finden Sie unter Clusterbibliotheken.
Sie können eine Clusterbibliothek direkt aus den folgenden Quellen installieren:
- Paketrepository wie PyPI, Maven oder CRAN
- Arbeitsbereichsdateien
- Unity Catalog-Volumes
- Cloudobjekt-Speicherort
- Pfad auf Ihrem lokalen Computer
Nicht alle Speicherorte werden für alle Arten von Bibliotheken oder für alle Computekonfigurationen unterstützt. Informationen über Konfigurationsempfehlungen finden Sie unter Empfehlungen für das Hochladen von Bibliotheken.
Wichtig
Bei Verwendung von Databricks Runtime 14.3 LTS und niedriger können Bibliotheken über DBFS installiert werden. Arbeitsbereichsbenutzer und -benutzerinnen können jedoch Bibliotheksdateien ändern, die in DBFS gespeichert sind. Um die Sicherheit von Bibliotheken in einem Azure Databricks-Arbeitsbereich zu verbessern, wurde das Speichern von Bibliotheksdateien im DBFS-Stamm eingestellt und ist in Databricks Runtime 15.1 und höher standardmäßig deaktiviert. Weitere Informationen finden Sie unter Das Speichern von Bibliotheken im DBFS-Stamm ist veraltet und standardmäßig deaktiviert.
Stattdessen empfiehlt Databricks, alle Bibliotheken (einschließlich Python-Bibliotheken, JAR-Dateien und Spark-Connectors) in Arbeitsbereichsdateien oder auf Unity Catalog-Volumes hochzuladen oder Bibliothekspaketrepositorys zu verwenden. Wenn Ihre Workload diese Muster nicht unterstützt, können Sie auch Bibliotheken verwenden, die im Cloudobjektspeicher gespeichert sind.
Vollständige Informationen zur Bibliotheksunterstützung finden Sie unter Python-Bibliotheksunterstützung, Java- und Scala-Bibliotheksunterstützung und R-Bibliotheksunterstützung.
Empfehlungen für das Hochladen von Bibliotheken
Databricks unterstützt die meisten Konfigurationsinstallationen von Python-, JAR- und R-Bibliotheken, aber es gibt einige nicht unterstützte Szenarien. Es wird empfohlen, Bibliotheken an Quellspeicherorte hochzuladen, die die Installation auf der Compute mit dem Modus für gemeinsam genutzten Zugriff unterstützen, da dies der empfohlene Modus für alle Workloads ist. Weitere Informationen finden Sie unter Zugriffsmodi. Führen Sie beim Planen von Aufträgen mit dem Modus für den freigegebenen Zugriff den Auftrag mit einem Dienstprinzipal aus.
Wichtig
Verwenden Sie "Compute" nur mit dem Modus für den einzelnen Benutzerzugriff, wenn die erforderliche Funktionalität nicht vom Modus für den gemeinsamen Zugriff unterstützt wird. Kein Isolationsmodus für den freigegebenen Zugriff ist eine Legacykonfiguration für Databricks, die nicht empfohlen wird.
Die folgende Tabelle enthält Empfehlungen nach Databricks Runtime-Version und Unity Catalog-Aktivierung organisiert.
Konfiguration | Empfehlung |
---|---|
Databricks Runtime 13.3 LTS und höher mit Unity-Katalog | Installieren Sie Bibliotheken auf der Compute mit freigegebenem Zugriffsmodus aus Unity-Katalogvolumes mit GRANT READ für alle Kontobenutzer. Falls zutreffend, müssen Maven-Koordinaten und JAR-Bibliothekspfade zur Zulassungsliste hinzugefügt werden. |
Databricks Runtime 11.3 LTS und höher ohne Unity-Katalog | Installieren Sie Bibliotheken aus Arbeitsbereichsdateien. (Das Dateigrößenlimit ist 500 MB.) |
Databricks Runtime 10.4 LTS und niedriger | Installieren Sie Bibliotheken aus Cloudobjektspeicher. |
Python-Bibliotheksunterstützung
Die folgende Tabelle zeigt die Kompatibilität der Databricks Runtime-Version für Python-Wheel-Dateien für verschiedene Clusterzugriffsmodi basierend auf dem Quellspeicherort der Bibliothek an. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime und Zugriffsmodi.
In Databricks Runtime 15.0 und höher können Sie die Python-Abhängigkeiten mithilfe von requirements.txt-Dateien verwalten. Diese Dateien können an jeden unterstützten Quellspeicherort hochgeladen werden.
Hinweis
Die Installation von Python-Egg-Dateien wird mit Databricks Runtime 14.0 und höher nicht unterstützt. Verwenden Sie stattdessen Python-Wheel-Dateien, oder installieren Sie Pakete aus PyPI.
Zugriffsmodus Freigegeben | Einzelbenutzerzugriffsmodus | Kein Isolations-Modus für den freigegebenen Zugriff (Legacy) | |
---|---|---|---|
PyPI | 13.3 LTS und höher | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
Arbeitsbereichsdateien | 13.3 LTS und höher | 13.3 LTS und höher | 14.1 und höher |
Volumes | 13.3 LTS und höher | 13.3 LTS und höher | Nicht unterstützt |
Cloudspeicher | 13.3 LTS und höher | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
DBFS (nicht empfohlen) | Nicht unterstützt | 14.3 und früher | 14.3 und früher |
Java- und Scala-Bibliotheksunterstützung
Die folgende Tabelle zeigt die Kompatibilität der Databricks-Runtime-Version für JAR-Dateien für verschiedene Clusterzugriffsmodi basierend auf dem Speicherort der Bibliotheksquelle an. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime und Zugriffsmodi.
Hinweis
Für den Modus für den freigegebenen Zugriff muss ein Administrator Maven-Koordinaten und Pfade für JAR-Bibliotheken hinzufügen zu einem allowlist
. Weitere Informationen finden Sie unter Positivliste von Bibliotheken und Initialisierungsskripts auf freigegebenem Compute.
Zugriffsmodus Freigegeben | Einzelbenutzerzugriffsmodus | Kein Isolations-Modus für den freigegebenen Zugriff (Legacy) | |
---|---|---|---|
Maven | 13.3 LTS und höher | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
Arbeitsbereichsdateien | Nicht unterstützt | Nicht unterstützt | 14.1 und höher |
Volumes | 13.3 LTS und höher | 13.3 LTS und höher | Nicht unterstützt |
Cloudspeicher | 13.3 LTS und höher | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
DBFS (nicht empfohlen) | Nicht unterstützt | 14.3 und früher | 14.3 und früher |
R Bibliotheksunterstützung
Die folgende Tabelle zeigt die Kompatibilität der Databricks Runtime-Version für CRAN-Pakete für verschiedene Clusterzugriffsmodi an. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime und Zugriffsmodi.
Zugriffsmodus Freigegeben | Einzelbenutzerzugriffsmodus | Kein Isolations-Modus für den freigegebenen Zugriff (Legacy) | |
---|---|---|---|
CRAN | Nicht unterstützt | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
Bibliotheken im Notebookbereich
Die für Python und R verfügbaren Bibliotheken im Notebook-Bereich ermöglichen die Installation von Bibliotheken und die Erstellung einer Umgebung im Bereich einer Notebook-Sitzung. Diese Bibliotheken haben keine Auswirkungen auf andere Notebooks, die im selben Cluster ausgeführt werden. Bibliotheken im Notebook-Bereich werden nicht gespeichert und müssen für jede Sitzung neu installiert werden. Verwenden Sie Bibliotheken im Notebook-Bereich, wenn Sie eine benutzerdefinierte Umgebung für ein bestimmtes Notebook benötigen.
Hinweis
JARs können nicht auf Notebookebene installiert werden.
Wichtig
Arbeitsbereichsbibliotheken sind veraltet und sollten nicht verwendet werden. Weitere Informationen finden Sie unter Arbeitsbereichsbibliotheken (Legacy). Das Speichern von Bibliotheken als Arbeitsbereichsdateien unterscheidet sich jedoch von Arbeitsbereichsbibliotheken und wird weiterhin vollständig unterstützt. Sie können Bibliotheken, die als Arbeitsbereichsdateien gespeichert sind, direkt installieren, um Aufgaben zu berechnen oder zu erledigen.
Python-Umgebungsverwaltung
In der folgenden Tabelle finden Sie eine Übersicht über die Optionen, die Sie zum Installieren von Python-Bibliotheken in Azure Databricks verwenden können.
Hinweis
- Benutzerdefinierte Container, die eine conda-basierte Umgebung verwenden, sind nicht kompatibel mit Bibliotheken im Notebookbereich sowie mit Clusterbibliotheken in Databricks Runtime 10.4 LTS und höher. Stattdessen empfiehlt Azure Databricks, Bibliotheken direkt im Image zu installieren oder Initialisierungsskripts (init) zu verwenden. Um in diesen Szenarien weiterhin Clusterbibliotheken zu verwenden, können Sie die Spark-Konfiguration
spark.databricks.driverNfs.clusterWidePythonLibsEnabled
auffalse
festlegen. Die Unterstützung für die Spark-Konfiguration wird am oder nach dem 31. Dezember 2021 entfernt.
Python-Paketquelle | Bibliotheken im Notebook-Bereich mit %pip | Notizbuchbezogene Bibliotheken mit YAML-Basisumgebungsdatei | Clusterbibliotheken | Auftragsbibliotheken mit Auftrags-API |
---|---|---|---|---|
PyPI | Verwenden Sie %pip install . Siehe Beispiel |
Fügen Sie einen PyPI-Paketnamen zu einer YAML-Basisumgebungsdatei hinzu. Siehe Beispiel | Wählen Sie PyPI als Quelle aus. | Fügen Sie den Auftragsbibliotheken ein neues pypi -Objekt hinzu, und geben Sie das Feld package an. |
Private PyPI-Spiegelung, z. B. Nexus oder Artifactory | Verwenden Sie %pip install mit der Option --index-url . Geheimnisverwaltung ist verfügbar. Siehe Beispiel |
Fügen Sie die -–index-url YAML-Basisumgebungsdatei hinzu. Geheimnisverwaltung ist verfügbar. Siehe Beispiel |
Nicht unterstützt. | Nicht unterstützt. |
VCS, etwa GitHub, mit Rohdatenquelle | Verwenden Sie %pip install , und geben Sie die Repository-URL als Paketnamen an. Siehe Beispiel |
Fügen Sie einer YAML-Basisumgebung eine Repository-URL als Paketnamen hinzu. Siehe Beispiel | Wählen Sie PyPI als Quelle aus, und geben Sie die Repository-URL als Paketnamen an. | Fügen Sie den Auftragsbibliotheken ein neues pypi -Objekt hinzu, und geben Sie die Repository-URL als Feld package an. |
Privates VCS mit Rohdatenquelle | Verwenden Sie %pip install , und geben Sie die Repository-URL mit Standardauthentifizierung als Paketnamen an. Geheimnisverwaltung ist verfügbar. Siehe Beispiel |
Fügen Sie ein Repository mit Standardauthentifizierung als Paketname zu einer YAML-Basisumgebungsdatei hinzu. Siehe Beispiel | Nicht unterstützt. | Wird nicht unterstützt. |
Dateipfad | Verwenden Sie %pip install . Siehe Beispiel |
Fügen Sie einen Dateipfad als Paketnamen zu einer YAML-Basisumgebungsdatei hinzu. Siehe Beispiel | Wählen Sie Dateipfad/ADLS als Quelle aus. | Fügen Sie den Auftragsbibliotheken ein neues egg - oder whl -Objekt hinzu, und geben Sie den Dateipfad als package -Feld an. |
Azure Data Lake Storage Gen2 | Verwenden Sie %pip install zusammen mit einer vorsignierten URL. Pfade mit dem Azure Data Lake Storage Gen2-Protokoll abfss:// werden nicht unterstützt. |
Fügen Sie einer YAML-Basisumgebung eine vorsignierte URL als Paketnamen hinzu. Pfade mit dem Azure Data Lake Storage Gen2-Protokoll abfss:// werden nicht unterstützt. |
Wählen Sie Dateipfad/ADLS als Quelle aus. | Fügen Sie den Auftragsbibliotheken ein neues egg - oder whl -Objekt hinzu, und geben Sie den Azure Data Lake Storage Gen2-Pfaad als package -Feld an. |
Rangfolge der Python-Bibliothek
Möglicherweise müssen Sie die Version für eine integrierte Bibliothek überschreiben oder eine benutzerdefinierte Bibliothek verwenden, die sich im Namen mit einer anderen Bibliothek überschneidet, die im Cluster installiert ist. Wenn Sie import <library>
ausführen, wird die Bibliothek mit der hohen Rangfolge importiert.
Wichtig
Bibliotheken, die in Arbeitsbereichsdateien gespeichert sind, haben unterschiedliche Rangfolgen, je nachdem, wie sie dem Python sys.path
hinzugefügt werden. Ein Databricks-Git-Ordner fügt das aktuelle Arbeitsverzeichnis dem Pfad vor allen anderen Bibliotheken hinzu, während Notebooks außerhalb von Git-Ordnern das aktuelle Arbeitsverzeichnis hinzufügen, nachdem andere Bibliotheken installiert wurden. Wenn Sie Arbeitsbereichsverzeichnisse manuell an Ihren Pfad anfügen, haben diese immer die niedrigste Priorität.
Die folgende Liste ordnet die Rangfolge vom höchsten zum niedrigsten an. In dieser Liste bedeutet eine niedrigere Zahl eine höhere Rangfolge.
- Bibliotheken im aktuellen Arbeitsverzeichnis (nur Git-Ordner)
- Bibliotheken im Stammverzeichnis des Git-Ordners (nur Git-Ordner)
- Bibliotheken im Notebook-Bereich (
%pip install
in Notebooks). - Clusterbibliotheken (die UI, CLI oder API verwenden).
- Bibliotheken, die in Databricks Runtime enthalten sind.
- Bibliotheken, die mit Init-Skripts installiert werden, können vor oder nach integrierten Bibliotheken aufgelöst werden, je nachdem, wie sie installiert werden. Databricks empfiehlt nicht, Bibliotheken mit Initialisierungsskripts zu installieren.
- Bibliotheken im aktuellen Arbeitsverzeichnis (nicht in Git-Ordnern)
- Arbeitsbereichsdateien, die an
sys.path
angefügt sind.