Verwalten von Apache Spark-Bibliotheken in Microsoft Fabric
Bei einer Bibliothek handelt es sich um vordefinierten Code, den Entwickler*innen importieren können, um zusätzliche Funktionen bereitzustellen. Bibliotheken verringern den Zeit- und Arbeitsaufwand für Sie, da sie Code nicht von Grund auf neu schreiben müssen, um allgemeine Aufgaben auszuführen. Importieren Sie stattdessen die Bibliothek und deren Funktionen und Klassen verwenden, um die gewünschten Funktionen zu erhalten. Microsoft Fabric bietet mehrere Mechanismen für die Verwaltung und Verwendung von Bibliotheken.
- Integrierte Bibliotheken: Jede Fabric Spark-Runtime bietet eine Vielzahl beliebter vorinstallierter Bibliotheken. Die vollständige Liste integrierter Bibliotheken finden Sie unter Fabric Spark-Runtime.
- Öffentliche Bibliothek: Öffentliche Bibliotheken stammen aus Repositorys wie PyPI und Conda, die derzeit unterstützt werden.
- Benutzerdefinierte Bibliotheken: Benutzerdefinierte Bibliotheken beziehen sich auf Code, der von Ihnen oder Ihrer Organisation erstellt wurde. Fabric unterstützt sie bei den Formaten .whl, .jar und .tar.gz. Fabric unterstützt TAR.GZ-Dateien nur für die R-Language. Verwenden Sie für benutzerdefinierte Python-Bibliotheken das Format WHL.
Bibliotheksverwaltung in der Arbeitsbereichseinstellung
Wichtig
Die Bibliotheksverwaltung in der Arbeitsbereichseinstellung wird nicht mehr unterstützt. Zum Migrieren von Arbeitsbereichbibliotheken und Spark-Eigenschaften zu einer Standardumgebung finden Sie unter Migrieren der Arbeitsbereichsbibliotheken und Spark-Eigenschaften.
Zusammenfassung der bewährten Methoden für die Bibliotheksverwaltung
In den folgenden Szenarien werden bewährte Methoden beschrieben.
Szenario 1: Durch Administrator*innen festgelegte Standardbibliotheken für den Arbeitsbereich
Um Standardbibliotheken festzulegen, müssen Sie der Administrator bzw. die Administratorin des Arbeitsbereichs sein. Als Administrator können Sie diese Aufgaben ausführen:
- Eine neue Umgebung erstellen
- Installieren Sie die erforderlichen Bibliotheken in der Umgebung
- Anfügen dieser Umgebung als Arbeitsbereichsstandard
Die Notebooks und Spark-Auftragsdefinitionen im Arbeitsbereich sind den Arbeitsbereichseinstellungen zugeordnet. Sie starten Sitzungen mit den Bibliotheken, die in der Standardumgebung des Arbeitsbereichs installiert sind.
Szenario 2: Beibehalten von Bibliotheksspezifikationen für mindestens ein Codeelement
Wenn Sie Bibliotheksspezifikationen beibehalten wollen, installieren Sie die Bibliotheken in einer Umgebung und fügen Sie sie an die Codeelemente an.
Ein Vorteil dieser Vorgehensweise ist, dass dadurch der Aufwand vermieden wird, den Codes auszuführen, der dauerhaft allgemeine Bibliotheken benötigt. Nach erfolgreicher Installation in der Umgebung sind die Bibliotheken in allen Spark-Sitzungen wirksam, wenn die Umgebung angefügt ist.
Ein weiterer Vorteil besteht darin, dass der Ansatz eine Granularität von Bibliothekskonfiguration unterstützt, die niedriger als die Arbeitsbereichsebene ist. Eine einzelne Umgebung kann an mehrere Codeartefakte angefügt werden. Wenn ein Arbeitsbereich eine Teilmenge von Notebooks oder Spark-Auftragsdefinitionen enthält, für die die gleichen Bibliotheken erforderlich sind, fügen Sie sie an die gleiche Umgebung an. Ein*e Administrator*innen, Mitglieder oder Mitwirkende des Arbeitsbereichs können die Umgebung erstellen, bearbeiten und anfügen.
Szenario 3: Inlineinstallation in interaktiver Ausführung
Wenn Sie an der einmaligen Verwendung innerhalb eines interaktiven Notebooks einer nicht installierten Bibliothek interessiert sind, ist die Inline-Installation die bequemste Option. Mithilfe von Inlinebefehlen in Fabric können Sie die Bibliothek in der aktuellen Spark-Sitzung des Notebooks aktivieren. Die Bibliothek wird nicht in verschiedenen Sitzungen beibehalten.
Benutzer*innen, die zum Ausführen des Notebooks berechtigt sind, können andere Bibliotheken in der Spark-Sitzung installieren.
Zusammenfassung der unterstützten Bibliothekstypen
Bibliothekstyp | Umgebungsbasierte Bibliotheksverwaltung | Inline-Installation |
---|---|---|
Python: öffentlich (PyPI und Conda) | Unterstützt | Unterstützt |
Python Custom (WHL) | Unterstützt | Unterstützt |
R: öffentlich (CRAN) | Nicht unterstützt | Unterstützt |
R benutzerdefiniert (TAR.GZ) | Unterstützt | Unterstützt |
JAR | Unterstützt als benutzerdefinierte Bibliothek | Nicht unterstützt |
Wichtig
Derzeit gelten Einschränkungen für die JAR-Bibliothek.
- Für Scala-Benutzer kann die .jar-Datei erfolgreich in einer Umgebung installiert werden, aber sie sit nicht wirksam für Ihre Spark/Scala-Sitzungen. Die Installation setzt die integrierte Bibliothek mit einer anderen Bibliothek außer Kraft. Die neue .jar funktioniert in den Sitzungen.
- Für Python-Benutzer werden derzeit alle .jar-Dateien in einer Umgebung nicht unterstützt. Sie können erfolgreich in einer Umgebung installiert werden, sind aber in PySpark-Sitzungen nicht effektiv.
- Sie können stattdessen die Datei .jar auf der Notebook-Sitzungsebene installiert werden.
Inline-Installation
Inlinebefehle unterstützen Python-Bibliotheken und R-Bibliotheken.
Inlineinstallation für Python
Der Python-Interpreter startet neu, um die Änderung der Bibliotheken anzuwenden. Alle vor dem Ausführen der Befehlszelle definierten Variablen gehen verloren. Es wird dringend empfohlen, dass Sie alle Befehle zum Hinzufügen, Löschen oder Aktualisieren von Python-Paketen am Anfang Ihres Notebooks platzieren.
Die Inline-Befehle zur Verwaltung von Python-Bibliotheken sind in der Notebook-Pipelineausführung standardmäßig deaktiviert. Wenn Sie %pip install
für die Pipeline aktivieren möchten, fügen Sie „_inlineInstallationEnabled“ als Bool-Parameter gleich „True“ in die Parameter der Notebook-Aktivität ein.
Hinweis
Das %pip install
kann von Zeit zu Zeit zu widersprüchlichen Ergebnissen führen. Es wird empfohlen, die Bibliothek in einer Umgebung zu installieren und sie in der Pipeline zu verwenden.
In der Notebookreferenz werden Inlinebefehle zum Verwalten von Python-Bibliotheken nicht unterstützt. Um die Richtigkeit der Ausführung sicherzustellen, wird empfohlen, diese Inlinebefehle aus dem referenzierten Notebook zu entfernen.
Wir empfehlen %pip
anstelle von !pip
. !pip
ist ein integrierter IPython-Shellbefehl mit den folgenden Einschränkungen:
!pip
installiert nur ein Paket auf dem Treiberknoten, nicht auf Executor-Knoten.- Pakete, die über
!pip
installiert werden, wirken sich nicht auf Konflikte mit integrierten Paketen aus oder auf Pakete, die bereits in ein Notebook importiert wurden.
%pip
handhabt diese Szenarien jedoch. Bibliotheken, die über %pip
installiert werden, sind sowohl auf Treiber- als auch auf Executorknoten verfügbar und sind auch dann wirksam, wenn die Bibliothek bereits importiert wurde.
Tipp
Der %conda install
-Befehl dauert in der Regel länger als der %pip install
-Befehl zum Installieren neuer Python-Bibliotheken. Er überprüft die vollständigen Abhängigkeiten und löst Konflikte.
Sie sollten %conda install
install verwenden, um mehr Zuverlässigkeit und Stabilität zu erzielen. Sie können %pip install
install verwenden, wenn Sie sicher sind, dass die Bibliothek, die Sie installieren möchten, nicht mit den vorinstallierten Bibliotheken in der Runtime-Umgebung in Konflikt steht.
Für alle verfügbaren Python-Inlinebefehle und -Erklärungen siehe %pip-Befehle und %conda-Befehle.
Verwalten öffentlicher Python-Bibliotheken über die Inlineinstallation
In diesem Beispiel sehen Sie, wie Sie Inlinebefehle verwenden, um Bibliotheken zu verwalten. Angenommen, Sie möchten Altair, eine leistungsstarke Visualisierungsbibliothek für Python, für eine einmalige Datenuntersuchung verwenden. Nehmen wir weiter an, die Bibliothek sei nicht in Ihrem Arbeitsbereich installiert. Das folgende Beispiel verwendet conda-Befehle, um die Schritte zu veranschaulichen.
Sie können Inlinebefehle verwenden, um Altair für Ihre Notebooksitzung zu aktivieren, ohne dass sich dies auf andere Sitzungen des Notebooks oder andere Elemente auswirkt.
Führen Sie die folgenden Befehle in einer Notebook-Code-Zelle aus. Der erste Befehl installiert die Altair-Bibliothek. Installieren Sie außerdem vega_datasets, das ein semantisches Modell enthält, mit dem Sie visualisieren können.
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
Die Zellenausgabe gibt das Ergebnis der Installation an.
Importieren Sie das Paket und das Semantikmodell, indem Sie die folgenden Codes in einer anderen Notebookzelle ausführen.
import altair as alt from vega_datasets import data
Jetzt können Sie mit der sitzungsspezifischen Altair-Bibliothek herumspielen.
# load a simple dataset as a pandas DataFrame cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', ).interactive()
Verwalten benutzerdefinierter Python-Bibliotheken über die Inlineinstallation
Sie können Ihre benutzerdefinierten Python-Bibliotheken in den Ordner Datei des Lakehouse hochladen, das an Ihr Notebook angefügt ist. Navigieren Sie zu Ihrem Lakehouse, wählen Sie das Symbol … im Ordner Datei aus, und laden Sie die benutzerdefinierte Bibliothek hoch.
Nach Ihrem Hochladen können Sie den folgenden Befehl verwenden, um die benutzerdefinierte Bibliothek in Ihrer Notebooksitzung zu installieren.
# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl
R-Inline-Installation
Zum Verwalten von R-Bibliotheken unterstützt Fabric die Befehle install.packages()
, remove.packages()
und devtools::
. Für alle verfügbaren R-Inlinebefehle und -Erläuterungen siehe Befehl install.packagesund dem Befehl remove.package.
Verwalten öffentlicher R-Bibliotheken über die Inlineinstallation
Im folgenden Beispiel werden die Schritte zum Installieren einer öffentlichen R-Bibliothek durchlaufen.
So installieren Sie eine R-Feedbibliothek
Wechseln Sie die Arbeitssprache im Notebook-Menüband auf SparkR (R).
Führen Sie den folgenden Befehl in einer Notebookzelle aus, um die Bibliothek caesar zu installieren.
install.packages("caesar")
Nun können Sie die sitzungsspezifische caesar-Bibliothek mit einem Spark-Auftrag ausprobieren.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
Verwalten von Jar-Bibliotheken über die Inlineinstallation
Die .jar-Dateien werden in Notebook-Sitzungen mit folgendem Befehl unterstützt.
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
Die Codezelle verwendet den Speicher von Lakehouse als Beispiel. Im Notebook-Explorer können Sie den vollständigen ABFS-Pfad kopieren und im Code ersetzen.