Verwalten von Apache Spark-Bibliotheken in Microsoft Fabric
Bibliotheken stellen wiederverwendbaren Code bereit, den Apache Spark-Entwickler möglicherweise in ihre Spark-Anwendung einschließen möchten.
Jeder Arbeitsbereich enthält einen vorinstallierten Satz von Bibliotheken, die in der Spark-Laufzeit verfügbar sind und die Sie sofort in einer Notebook- oder Spark-Auftragsdefinition verwenden können. Wir bezeichnen diese als integrierte Bibliotheken.
Wichtig
Microsoft Fabric befindet sich derzeit in der Vorschauversion. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
Basierend auf Ihren Szenarien und spezifischen Anforderungen können Sie andere Bibliotheken einschließen. Es gibt zwei Arten von Bibliotheken, die Sie möglicherweise einschließen möchten:
Feedbibliothek: Feedbibliotheken stammen aus öffentlichen Quellen oder Repositorys. Sie können Python-Feedbibliotheken aus PyPI und Conda installieren, indem Sie die Quelle in den Bibliotheksverwaltungsportalen angeben. Sie können auch eine yml-Datei der Conda-Umgebungsspezifikation verwenden, um Bibliotheken zu installieren.
Benutzerdefinierte Bibliothek: Benutzerdefinierte Bibliotheken sind der Code, der von Ihnen oder Ihrem organization erstellt wurde. .whl, .jar und .tar.gz können über Bibliotheksverwaltungsportale verwaltet werden. Beachten Sie, dass .tar.gz nur für die Sprache R unterstützt wird. verwenden Sie .whl für benutzerdefinierte Python-Bibliotheken.
Zusammenfassung der Bibliotheksverwaltung und bewährten Methoden
Sie können alle zuvor genannten Arten von Bibliotheken über zwei verschiedene Einstiegspunkte verwalten: Bibliotheksverwaltung in Arbeitsbereichseinstellungen und Inlineinstallation.
Verwaltung von Arbeitsbereichsbibliotheken: Die Arbeitsbereichsbibliothekseinstellungen definieren die Arbeitsumgebung für den gesamten Arbeitsbereich. Die auf Arbeitsbereichsebene installierten Bibliotheken sind für alle Notebooks und Spark-Auftragsdefinitionen unter diesem Arbeitsbereich verfügbar. Aktualisieren Sie die Arbeitsbereichsbibliotheken, wenn Sie die freigegebene Umgebung für alle Elemente in einem Arbeitsbereich einrichten möchten.
Wichtig
Die Verwaltung der Arbeitsbereichsbibliothek ist nur auf Arbeitsbereichsadministratoren beschränkt. Arbeitsbereichsmitglieder, Mitwirkende und Viewer können die vom Administrator installierten Bibliotheken anzeigen.
Inlineinstallation: Mit der In-Line-Installation können Sie Bibliotheken für Ihre Notebooksitzung installieren, ohne die globale Umgebung zu beeinträchtigen. Diese Option ist praktisch, wenn Sie eine temporäre und schnelle Lösung wünschen. Für instance können Sie ein lokales Paket ausprobieren oder einige andere Pakete für eine einzelne Sitzung verwenden. Derzeit können Python-Pakete und R-Pakete inline verwaltet werden.
Wichtig
Die Inlineinstallation ist sitzungsspezifisch und wird nicht sitzungsübergreifend beibehalten.
Der Python-Interpreter wird neu gestartet, um die Änderungen der Bibliothek anzuwenden. Alle Variablen, die vor der Ausführung der Befehlszelle definiert wurden, gehen verloren. Daher wird dringend empfohlen, alle Befehle zum Hinzufügen, Löschen oder Aktualisieren von Python-Paketen am Anfang Ihres Notebooks zu platzieren.
Zusammenfassung aller derzeit in Fabric verfügbaren Bibliotheksverwaltungsverhalten:
Name der Bibliothek | Arbeitsbereichsupdate | Inlineinstallation |
---|---|---|
Python-Feed (PyPI & Conda) | Unterstützt | Unterstützt |
Python Custom (.whl) | Unterstützt | Unterstützt |
R Feed (CRAN) | Nicht unterstützt | Unterstützt |
R custom (.tar.gz) | Unterstützt | Unterstützt |
Jar | Unterstützt | Nicht unterstützt |
Wichtig
Derzeit gelten Einschränkungen für die JAR-Bibliothek .
- Wenn Sie eine JAR-Datei mit einer anderen Version der integrierten Bibliothek hochladen, ist dies nicht wirksam. Nur die neue JAR-Datei ist für Ihre Spark-Sitzungen wirksam.
- %% konfigurieren von Magic-Befehlen wird derzeit in Fabric nicht vollständig unterstützt. Verwenden Sie es nicht, um eine JAR-Datei in Ihre Notebooksitzung zu bringen.
Bibliotheksverwaltung im Arbeitsbereich
Unter den Arbeitsbereichseinstellungen finden Sie das Bibliotheksverwaltungsportal auf Arbeitsbereichsebene: Arbeitsbereichseinstellung>Datenentwicklung>Bibliotheksverwaltung.
Verwalten der Feedbibliothek in der Arbeitsbereichseinstellung
In diesem Abschnitt wird erläutert, wie Sie Feedbibliotheken über PyPI oder Conda mithilfe des Verwaltungsportals der Arbeitsbereichsbibliothek verwalten.
Ansichts- und Suchfeedbibliothek: Sie können die installierten Bibliotheken und deren Name, Version und Abhängigkeiten im Bibliotheksverwaltungsportal anzeigen. Sie können auch das Filterfeld in der oberen rechten Ecke verwenden, um eine installierte Bibliothek schnell zu finden.
Neue Feedbibliothek hinzufügen: Die Standardquelle für die Installation von Python-Feedbibliotheken ist PyPI. Sie können auch "Conda" in der Dropdownschaltfläche neben der Schaltfläche "Hinzufügen" auswählen. Um eine neue Bibliothek hinzuzufügen, wählen Sie die + Schaltfläche aus, und geben Sie den Bibliotheksnamen und die Version in die neue Zeile ein.
Alternativ können Sie eine YML-Datei hochladen, um mehrere Feedbibliotheken gleichzeitig zu installieren.
Entfernen einer vorhandenen Feedbibliothek: Um eine Bibliothek zu entfernen, wählen Sie die Schaltfläche Papierkorb in ihrer Zeile aus.
Aktualisieren der Version der vorhandenen Feedbibliothek: Um die Version einer Bibliothek zu ändern, wählen Sie im Dropdownfeld in ihrer Zeile eine andere aus.
Überprüfen und Anwenden von Änderungen: Sie können Ihre Änderungen im Bereich "Ausstehende Änderungen" überprüfen. Sie können eine Änderung entfernen, indem Sie auf die Schaltfläche X klicken, oder alle Änderungen verwerfen, indem Sie unten auf der Seite auf die Schaltfläche Verwerfen klicken. Wenn Sie mit Ihren Änderungen zufrieden sind, wählen Sie Anwenden aus, um diese Änderungen wirksam zu machen.
Verwalten von benutzerdefinierten Bibliotheken in der Arbeitsbereichseinstellung
In diesem Abschnitt wird erläutert, wie Sie Ihre benutzerdefinierten Pakete, z . B. JAR, mithilfe des Verwaltungsportals der Arbeitsbereichsbibliothek verwalten.
Neue benutzerdefinierte Bibliothek hochladen: Sie können Ihre benutzerdefinierten Codes als Pakete über das Portal in die Fabric-Runtime hochladen. Das Bibliotheksverwaltungsmodul hilft Ihnen bei der Lösung potenzieller Konflikte und Downloadabhängigkeiten in Ihren benutzerdefinierten Bibliotheken.
Um ein Paket hochzuladen, wählen Sie im Bereich Benutzerdefinierte Bibliotheken die Schaltfläche Hochladen aus, und wählen Sie ein lokales Verzeichnis aus.
Entfernen einer vorhandenen benutzerdefinierten Bibliothek: Sie können eine benutzerdefinierte Bibliothek aus der Spark-Runtime entfernen, indem Sie im Bereich Benutzerdefinierte Bibliotheken auf die Papierkorbschaltfläche klicken.
Überprüfen und Anwenden von Änderungen: Wie bei Feedbibliotheken können Sie Ihre Änderungen im Bereich Ausstehende Änderungen überprüfen und auf Ihre Fabric Spark-Arbeitsbereichsumgebung anwenden.
Hinweis
Bei WHL-Paketen lädt der Bibliotheksinstallationsvorgang die Abhängigkeiten automatisch aus öffentlichen Quellen herunter. Dieses Feature ist jedoch nicht für .tar.gz-Pakete verfügbar. Sie müssen die abhängigen Pakete des Standard .tar.gz-Pakets manuell hochladen, falls vorhanden.
Update abbrechen
Der Aktualisierungsprozess der Bibliothek kann einige Zeit in Anspruch nehmen. Sie können den Prozess abbrechen und die Bearbeitung fortsetzen, während er aktualisiert wird. Die Schaltfläche Abbrechen wird während des Vorgangs angezeigt.
Problembehandlung
Wenn der Bibliotheksupdatevorgang fehlschlägt, erhalten Sie eine Benachrichtigung. Sie können die Schaltfläche Protokoll anzeigen auswählen, um die Protokolldetails anzuzeigen und das Problem zu beheben. Wenn ein Systemfehler auftritt, können Sie die Stammaktivitäts-ID kopieren und dem Supportteam melden.
Inlineinstallation
Wenn Sie einige andere Pakete für einen Schnelltest in einer interaktiven Notebookausführung verwenden möchten, ist die In-Line-Installation die bequemste Option.
Wichtig
%pip wird anstelle von !pip empfohlen. !pip ist ein integrierter IPython-Shellbefehl mit folgenden Einschränkungen:
- !pip installiert das Paket nur auf dem Treiberknoten ohne Executorknoten.
- Pakete, die über !pip installiert werden, wirken sich nicht auf Konflikte mit integrierten Paketen aus oder wenn sie bereits in ein Notebook importiert wurden.
%pip verarbeitet jedoch alle oben genannten Szenarien. Bibliotheken, die über %pip installiert werden, sind sowohl auf Treiber- als auch auf Executorknoten verfügbar und bleiben auch dann wirksam, wenn sie bereits importiert wurden.
Tipp
- Der Befehl %conda install dauert normalerweise länger als der % pip install-Befehl , um neue Python-Bibliotheken zu installieren, da er die vollständigen Abhängigkeiten überprüft und Konflikte löst. Sie können %conda install verwenden, um mehr Zuverlässigkeit und Stabilität zu erzielen. Sie können %pip install verwenden, wenn Sie sicher sind, dass die Bibliothek, die Sie installieren möchten, nicht mit den vorinstallierten Bibliotheken in der Laufzeitumgebung in Konflikt steht.
- Alle verfügbaren Python-Inlinebefehle und zugehörigen Erläuterungen finden Sie: %pip-Befehle und %conda-Befehle
Verwalten von Python-Feedbibliotheken über die Inlineinstallation
In diesem Beispiel wird gezeigt, 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. Angenommen, die Bibliothek ist nicht in Ihrem Arbeitsbereich installiert. Im folgenden Beispiel verwenden wir 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-Codezelle aus, um die Altair-Bibliothek und vega_datasets zu installieren, die ein Dataset enthält, das Sie zum Visualisieren verwenden können:
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
Das Protokoll in der Zellenausgabe gibt das Ergebnis der Installation an.
Importieren Sie das Paket und das Dataset, 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 Sitzungsbereichs-Altair-Bibliothek spielen:
# 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, der 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 dem 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
Verwalten von R-Feedbibliotheken über die Inlineinstallation
Fabric unterstützt befehle install.packages(), remove.packages() und devtools:: zum Verwalten von R-Bibliotheken.
Tipp
Alle verfügbaren R-In-Line-Befehle und ihre Erläuterungen finden Sie: install.packages-Befehl, remove.package-Befehl und devtools-Befehle.
Befolgen Sie dieses Beispiel, um die Schritte zum Installieren einer R-Feedbibliothek zu durchlaufen:
Wechseln Sie die Arbeitssprache auf "SparkR(R)" im Notebook-Menüband.
Führen Sie den folgenden Befehl in einer Notebookzelle aus, um die caesar library zu installieren:
install.packages("caesar")
Jetzt können Sie mit der sitzungsbezogenen Caesar-Bibliothek mit Spark-Auftrag spielen.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)