R Bibliotheksverwaltung

Bibliotheken stellen wiederverwendbaren Code bereit, den Sie möglicherweise in Ihre Programme oder Projekte für Microsoft Fabric Spark einschließen möchten.

Microsoft Fabric unterstützt eine R-Laufzeit mit vielen beliebten Open Source R-Paketen, einschließlich TidyVerse, vorinstalliert. Wenn eine Spark-Instanz gestartet wird, werden diese Bibliotheken automatisch und sofort in Notizbüchern oder Spark-Auftragsdefinitionen verwendet.

Möglicherweise müssen Sie Ihre R-Bibliotheken aus verschiedenen Gründen aktualisieren. Beispielsweise hat 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.

Zwei Arten von Bibliotheken passen möglicherweise zu Ihrem Szenario:

  • Feedbibliotheken beziehen sich auf diejenigen, die sich in öffentlichen Quellen oder Repositorys befinden, z. B. CRAN oder GitHub.

  • Benutzerdefinierte Bibliotheken sind der Code, der von Ihnen oder Ihrer Organisation erstellt wurde, und .tar.gz können über Bibliotheksverwaltungsportale verwaltet werden.

Es gibt zwei Ebenen von Paketen, die auf Microsoft Fabric installiert sind:

  • Umgebung: Verwalten Sie Bibliotheken über eine Umgebung, um dieselben Bibliotheken in mehreren Notebooks oder Aufträgen wiederzuverwenden.

  • Session: Eine sitzungsbezogene Installation erstellt eine Umgebung für eine bestimmte Notebook-Sitzung. Änderungen an Bibliotheken auf Sitzungsebene werden zwischen Sitzungen nicht beibehalten.

Veröffentlichungsmodi für Umgebungen (Schnell- und Vollmodus)

Wenn Sie Bibliotheken in einer Fabric-Umgebung installieren, wählen Sie einen Veröffentlichungsmodus aus:

  • Der Schnellmodus veröffentlicht in etwa 5 Sekunden. Bibliotheken werden installiert, wenn eine Notebook-Sitzung gestartet wird. Der Schnellmodus eignet sich am besten für eine schnelle Iteration während der Entwicklung.
  • Ein vollständiger Modus erstellt einen stabilen, reproduzierbaren Bibliothekssnapshot. Die Veröffentlichung dauert in der Regel 3 bis 6 Minuten, und beim Sitzungsstart kommen 1 bis 3 Minuten für die Bereitstellung von Abhängigkeiten hinzu.

Diese Modi gelten für R-Bibliotheken auf Umgebungsebene. R-Bibliotheken auf Sitzungsebene, die Sie beispielsweise über Inlinebefehle (install.packages()) oder aus dem Ordner "Ressourcen" installieren, gelten jeweils für die aktuelle Sitzung und das jeweilige Notizbuch. Sie werden nicht von den Veröffentlichungsmodi der Umgebung beeinflusst. Ausführliche Informationen finden Sie unter Verwalten von Bibliotheken in Fabric-Umgebungen.

In der folgenden Tabelle sind die aktuellen R-Bibliotheksverwaltungsverhaltensweisen zusammengefasst:

Bibliothekstyp Umgebungsinstallation Installation auf Sitzungsebene
R-Feedbibliotheken (CRAN) Nicht unterstützt Unterstützt
Benutzerdefinierte R-Bibliotheken Unterstützt Unterstützt

Voraussetzungen

R-Bibliotheken auf Sitzungsebene

Wenn Sie interaktive Datenanalysen oder machine learning durchführen, können Sie neuere Pakete ausprobieren oder Pakete benötigen, die derzeit in Ihrem Arbeitsbereich nicht verfügbar sind. Anstatt die Arbeitsbereichseinstellungen zu aktualisieren, verwenden Sie Sitzungspakete, um Sitzungsabhängigkeiten hinzuzufügen, zu verwalten und zu aktualisieren.

  • Wenn Sie sitzungsbezogene Bibliotheken installieren, hat nur das aktuelle Notizbuch Zugriff auf die angegebenen Bibliotheken.
  • Diese Bibliotheken wirken sich nicht auf andere Sitzungen oder Aufträge aus, die denselben Spark-Pool verwenden.
  • Diese Bibliotheken werden über die Basislaufzeit- und Poolebenenbibliotheken installiert.
  • Notizbuchbibliotheken haben höchste Priorität. Die Rangfolge lautet: Notizbuch-/sitzungsbezogene Bibliotheken > umgebungsbezogene Bibliotheken > Basislaufzeitbibliotheken.
  • Sitzungsbezogene R-Bibliotheken werden nicht sitzungsübergreifend beibehalten. Diese Bibliotheken werden zu Beginn jeder Sitzung installiert, wenn die zugehörigen Installationsbefehle ausgeführt werden.
  • Sitzungsbezogene R-Bibliotheken werden automatisch sowohl auf den Treiberknoten als auch auf den Arbeitsknoten installiert.

Anmerkung

Die Befehle zum Verwalten von R-Bibliotheken werden beim Ausführen von Pipelineaufträgen deaktiviert. Wenn Sie ein Paket in einer Pipeline installieren möchten, müssen Sie die Bibliotheksverwaltungsfunktionen auf Arbeitsbereichsebene verwenden.

Installieren von R-Paketen von CRAN

Sie können eine R-Bibliothek ganz einfach aus CRAN installieren.

# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

Sie können CRAN-Momentaufnahmen auch als Repository verwenden, um sicherzustellen, dass sie jedes Mal dieselbe Paketversion herunterladen.

# 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 allgemeine Aufgaben zu beschleunigen. Diese Bibliothek wird innerhalb der Standard-Microsoft Fabric Laufzeit installiert.

Verwenden Sie devtools, um eine bestimmte Version einer Bibliothek zu installieren. Der Cluster installiert diese Bibliotheken über alle Knoten hinweg.

# Install a specific version. 
install_version("caesar", version = "1.0.0")

Ebenso können Sie eine Bibliothek direkt aus GitHub installieren.

# Install a GitHub library. 

install_github("jtilly/matchingR")

Derzeit werden die folgenden devtools-Funktionen in Microsoft Fabric unterstützt:

Befehl Beschreibung
install_github() Installiert ein R-Paket aus GitHub
install_gitlab() Installiert ein R-Paket von GitLab
install_bitbucket() Installiert ein R-Paket von BitBucket
install_url() Installiert ein R-Paket aus einer beliebigen URL.
install_git() Installiert aus einem beliebigen Git-Repository
install_local() Installationen aus einer lokalen 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, laden Sie sie zuerst in ein angefügtes Lakehouse hoch.

  1. Öffnen Sie das Notizbuch, in dem Sie die benutzerdefinierte Bibliothek verwenden möchten.

  2. Fügen Sie Ihrem Notizbuch ein Seehaus hinzu.

  3. Wählen Sie das Dropdown neben dem soeben hinzugefügten Seehaus aus. Klicken Sie dann mit der rechten Maustaste, oder wählen Sie das "..." aus. neben "Dateien ", um Ihre .tar.gz Datei hochzuladen.

    Screenshot, wie Sie Ihre Datei in den Ordner

  4. Nach dem Hochladen der Datei gehen Sie zurück in Ihr Notizbuch. Verwenden Sie den folgenden Befehl, um die benutzerdefinierte Bibliothek in Ihrer Sitzung zu installieren:

    install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
    

Anmerkung

Ansätze mit Inline-Installationen und Ressourcenordnern für R-Bibliotheken sind pro Sitzung und pro Notebook. Sie sind nicht von Umgebungs-Veröffentlichungsmodi betroffen.

Anzeigen installierter Bibliotheken

Fragen Sie alle Bibliotheken ab, die in Ihrer Sitzung installiert sind, mithilfe des Befehls library.

# query all the libraries installed in current session
library()

Verwenden Sie die packageVersion-Funktion, um die Version der Bibliothek zu überprüfen:

# check the package version
packageVersion("caesar")

Entfernen eines R-Pakets aus einer Sitzung

Verwenden Sie die detach Funktion, um eine Bibliothek aus dem Namespace zu entfernen. Diese Bibliotheken bleiben auf dem Datenträger, bis Sie sie erneut laden.

# detach a library

detach("package: caesar")

Um ein sesionbezogenes Paket aus einem Notizbuch zu entfernen, verwenden Sie den Befehl remove.packages(). Diese Bibliotheksänderung hat keine Auswirkungen auf andere Sitzungen im selben Cluster. Benutzer können integrierte Bibliotheken der Standard-Microsoft Fabric Laufzeit nicht deinstallieren oder entfernen.

Anmerkung

Kernpakete wie SparkR, SparklyR oder R können nicht entfernt werden.

remove.packages("caesar")

Sitzungsbezogene R-Bibliotheken und SparkR

Bibliotheken im Notebookbereich 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

spark_apply() Mithilfe von Sparklyr können Sie alle R-Pakete in Spark verwenden. Standardmäßig ist in sparklyr::spark_apply() das packages-Argument auf FALSE festgelegt. Mit dieser Einstellung werden Bibliotheken in der aktuellen libPaths Version in die Mitarbeiter kopiert, sodass Sie sie für Mitarbeiter importieren und verwenden können. Sie können z. B. den folgenden Befehl ausführen, um eine mit sparklyr::spark_apply() caesar-verschlüsselte Nachricht zu generieren.

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)

Weitere Informationen zu den R-Funktionen: