R-Bibliotheksverwaltung
Bibliotheken stellen wiederverwendbaren Code bereit, den Sie in Ihre Spark-Programme oder -Projekte in Microsoft Fabric einbinden können.
Microsoft Fabric unterstützt eine R-Runtime mit vielen beliebten Open-Source-Paketen für R, einschließlich TidyVerse, die bereits vorinstalliert sind. Wenn eine Spark-Instanz gestartet wird, sind diese Bibliotheken automatisch enthalten und sofort in Notebooks oder Spark-Auftragsdefinitionen verfügbar.
Es kann aus verschiedenen Gründen vorkommen, dass Sie Ihre R-Bibliotheken aktualisieren müssen. Möglicherweise wurde für eine Ihrer Kernabhängigkeiten eine neue Version veröffentlicht, oder Ihr Team hat ein benutzerdefiniertes Paket erstellt, das Sie in Ihren Spark-Clustern benötigen.
Es gibt zwei Arten von Bibliotheken, die Sie je nach Szenario einschließen sollten:
Feedbibliothek sind Bibliotheken, die sich in öffentlichen Quellen oder Repositorys befinden, zum Beispiel CRAN oder GitHub.
Benutzerdefinierte Bibliotheken sind der Code, der von Ihnen oder Ihrer Organisation erstellt wurde. .tar.gz kann über Bibliotheksverwaltungsportale verwaltet werden.
In Microsoft Fabric werden Pakete auf zwei Ebenen installiert:
Umgebung: Verwalten von Bibliotheken über eine Umgebung , um den gleichen Satz von Bibliotheken für mehrere Notebooks oder Aufträge wiederzuverwenden.
Sitzung: Bei einer Installation auf Sitzungsebene wird eine Umgebung für eine bestimmte Notebooksitzung erstellt. Änderungen an Bibliotheken auf Sitzungsebene werden zwischen Sitzungen nicht beibehalten.
Zusammenfassung der aktuellen Verwaltungsverhalten von R-Bibliotheken:
Bibliothekstyp | Installation der Umgebung | Installation auf Sitzungsebene |
---|---|---|
R Feed (CRAN) | Nicht unterstützt | Unterstützt |
Benutzerdefinierte R-Bibliotheken | Unterstützt | Unterstützt |
Voraussetzungen
Erwerben Sie ein Microsoft Fabric-Abonnement. Registrieren Sie sich alternativ für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabric an.
Wechseln Sie zur Synapse-Data Science-Benutzeroberfläche, indem Sie den Umschalter für die Benutzeroberfläche auf der linken Seite Ihrer Homepage verwenden.
R-Bibliotheken auf Sitzungsebene
Bei interaktiver Datenanalyse oder maschinellem Lernen probieren Sie ggf. neuere Pakete aus, oder Sie benötigen Pakete, die derzeit nicht in Ihrem Arbeitsbereich verfügbar sind. Anstatt die Arbeitsbereicheinstellungen zu aktualisieren, können Sie jetzt sitzungsbezogene Pakete verwenden, um Sitzungsabhängigkeiten hinzuzufügen, zu verwalten und zu aktualisieren.
- Wenn Sie sitzungsbezogene Bibliotheken installieren, kann nur das aktuelle Notebook auf die angegebenen Bibliotheken zugreifen.
- Diese Bibliotheken wirken sich nicht auf andere Sitzungen oder Aufträge aus, die denselben Spark-Pool verwenden.
- Diese Bibliotheken werden auf Basis der zugrunde liegenden Bibliotheken auf Runtime- und Poolebene installiert.
- Notebookbibliotheken besitzen die höchste Priorität.
- Sitzungsbezogene R-Bibliotheken werden nicht sitzungsübergreifend beibehalten. Diese Bibliotheken werden am Anfang jeder Sitzung installiert, wenn die zugehörigen Installationsbefehle ausgeführt werden.
- Sitzungsbezogene R-Bibliotheken werden automatisch auf den Treiber- und Workerknoten installiert.
Hinweis
Die Befehle zum Verwalten von R-Bibliotheken werden beim Ausführen von Pipelineaufträgen deaktiviert. Wenn Sie ein Paket innerhalb einer Pipeline installieren möchten, müssen Sie die Funktionen zur Bibliotheksverwaltung auf Arbeitsbereichsebene nutzen.
Installieren von R-Paketen über CRAN
Sie können eine R-Bibliothek ganz einfach über CRAN installieren.
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
Sie können zudem CRAN-Momentaufnahmen als Repository verwenden, um sicherzustellen, dass immer dieselbe Paketversion heruntergeladen wird.
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
Installieren von R-Paketen mithilfe von devtools
Die devtools
-Bibliothek vereinfacht die Paketentwicklung, um gängige Aufgaben zu beschleunigen. Diese Bibliothek wird in der Microsoft Fabric-Standardruntime installiert.
Sie können mit devtools
eine bestimmte Version einer zu installierenden Bibliothek angeben. Diese Bibliotheken werden auf allen Knoten innerhalb des Clusters installiert.
# Install a specific version.
install_version("caesar", version = "1.0.0")
Auf ähnliche Weise können Sie eine Bibliothek direkt aus GitHub installieren.
# Install a GitHub library.
install_github("jtilly/matchingR")
Derzeit unterstützt Microsoft Fabric die folgenden devtools
-Funktionen:
Befehl | BESCHREIBUNG |
---|---|
install_github() | Installiert ein R-Paket aus GitHub |
install_gitlab() | Installiert ein R-Paket aus GitLab |
install_bitbucket() | Installiert ein R-Paket aus BitBucket |
install_url() | Installiert ein R-Paket über eine beliebige URL |
install_git() | Installation über ein beliebiges Git-Repository |
install_local() | Installation über eine lokale Datei auf dem Datenträger |
install_version() | Installation über eine bestimmte Version aus CRAN |
Installieren von benutzerdefinierten R-Bibliotheken
Um eine benutzerdefinierte Bibliothek auf Sitzungsebene zu verwenden, müssen Sie sie zuerst in ein angefügtes Lakehouse hochladen.
Wählen Sie auf der linken Seite Hinzufügen aus, um ein vorhandenes Lakehouse hinzuzufügen oder ein Lakehouse zu erstellen.
Um diesem Lakehouse Dateien hinzuzufügen, wählen Sie Ihren Arbeitsbereich und dann das Lakehouse aus.
Klicken Sie mit der rechten Maustaste, oder wählen Sie „...“ neben Dateien aus, um Ihre TAR.GZ-Datei hochzuladen.
Wechseln Sie nach dem Hochladen zurück zu Ihrem Notebook. Verwenden Sie den folgenden Befehl, um die benutzerdefinierte Bibliothek in Ihrer Sitzung zu installieren:
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
Anzeigen der installierten Bibliotheken
Fragen Sie alle in Ihrer Sitzung installierten Bibliotheken über den Befehl library
ab.
# query all the libraries installed in current session
library()
Verwenden Sie die Funktion packageVersion
, um die Version der Bibliothek zu überprüfen:
# check the package version
packageVersion("caesar")
Entfernen eines R-Pakets aus einer Sitzung
Sie können die Funktion detach
verwenden, um eine Bibliothek aus dem Namespace zu entfernen. Diese Bibliotheken verbleiben auf dem Datenträger, bis sie erneut geladen werden.
# detach a library
detach("package: caesar")
Zum Entfernen eines sitzungsbezogenen Pakets aus einem Notebook verwenden Sie den Befehl remove.packages()
. Diese Bibliotheksänderung hat keine Auswirkungen auf andere Sitzungen im selben Cluster. Bibliotheken der Standardruntime von Microsoft Fabric können nicht durch Benutzer*innen deinstalliert oder entfernt werden.
Hinweis
Sie können Kernpakete wie SparkR, SparklyR oder R nicht entfernen.
remove.packages("caesar")
Sitzungsbezogene R-Bibliotheken und SparkR
Bibliotheken im Notebook-Bereich sind in SparkR-Workern verfügbar.
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
Sitzungsbezogene R-Bibliotheken und sparklyr
Mithilfe von spark_apply()
in sparklyr können Sie alle R-Pakete innerhalb von Spark verwenden. In sparklyr::spark_apply()
ist das Argument „packages“ standardmäßig auf FALSE festgelegt. Dadurch werden die Bibliotheken in die aktuelle libPaths-Funktion der Worker kopiert, um sie in die Worker zu importieren und dort zu nutzen. Sie können beispielsweise eine mit Caesar verschlüsselte Nachricht mit sparklyr::spark_apply()
generieren, indem Sie Folgendes ausführen:
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
Zugehöriger Inhalt
Weitere Informationen zu den R-Funktionen: