R-Bibliotheken im Notebook-Bereich

Mit R-Bibliotheken im Notebook-Bereich können Sie die für eine Notebook-Sitzung spezifischen benutzerdefinierten R-Umgebungen erstellen und ändern. Wenn Sie eine R-Bibliothek im Notebook-Bereich installieren, haben nur das aktuelle Notebook und alle diesem Notebook zugeordneten Aufträge Zugriff auf diese Bibliothek. Andere Notebooks, die an denselben Cluster angefügt sind, sind nicht betroffen.

Bibliotheken im Notebook-Bereich werden nicht sitzungsübergreifend beibehalten. Sie müssen Bibliotheken im Notebook-Bereich zu Beginn jeder Sitzung oder immer dann neu installieren, wenn das Notebook von einem Cluster getrennt wird.

Bibliotheken im Notebook-Bereich sind automatisch für Worker für SparkR-UDFs verfügbar.

Um Bibliotheken für alle Notebooks zu installieren, die einem Cluster zugeordnet sind, verwenden Sie installierte Clusterbibliotheken. Weitere Informationen finden Sie unter Clusterbibliotheken.

Installieren von Bibliotheken im Notebook-Bereich in R

Sie können jede vertraute Methode zum Installieren von Paketen in R verwenden, z. B. install.packages(), die Devtools-APIs oder Bioconductor.

R-Pakete sind für Workerknoten und den Treiberknoten zugänglich.

Verwalten von Bibliotheken im Notebook-Bereich in R

Inhalt dieses Abschnitts:

Installieren eines Pakets

require(devtools)

install_version(
  package = "caesar",
  repos   = "http://cran.us.r-project.org"
)

Databricks empfiehlt die Verwendung einer CRAN-Momentaufnahme als Repository, um reproduzierbare Ergebnisse zu gewährleisten.

devtools::install_github("klutometis/roxygen")

Entfernen eines R-Pakets aus einer Notebook-Umgebung

Zum Entfernen einer Bibliothek im Notebook-Bereich aus einer Notebook-Umgebung verwenden Sie den Befehl remove.packages().

remove.packages("caesar")

R-Bibliotheken im Notebook-Bereich mit Spark-UDFs

Inhalt dieses Abschnitts:

R-Bibliotheken im Notebook-Bereich und SparkR

Bibliotheken im Notebook-Bereich sind in SparkR-Workern verfügbar. Importieren Sie einfach eine Bibliothek, um sie zu verwenden. Sie können beispielsweise eine mit Caesar verschlüsselte Nachricht mit einer SparkR-UDF generieren, indem Sie Folgendes ausführen:

require(devtools)

install_version(
  package = "caesar",
  repos   = "http://cran.us.r-project.org"
)

library(SparkR)
sparkR.session()

hello <- function(x) {
  library(caesar)
  caesar("hello world")
}

spark.lapply(c(1, 2), hello)

R-Bibliotheken im Notebook-Bereich und sparklyr

Standardmäßig ist in sparklyr::spark_apply() das packages-Argument auf TRUE festgelegt. Dadurch werden Bibliotheken in der aktuellen libPaths die Worker kopiert, sodass Sie sie importieren und in Workern verwenden können. Sie können beispielsweise eine mit Caesar verschlüsselte Nachricht mit sparklyr::spark_apply() generieren, indem Sie Folgendes ausführen:

require(devtools)

install_version(
  package = "caesar",
  repos   = "http://cran.us.r-project.org"
)

library(sparklyr)
sc <- spark_connect(method = 'databricks')

apply_caes <- function(x) {
  library(caesar)
  caesar("hello world")
}

sdf_len(sc, 5) %>%
  spark_apply(apply_caes)

Wenn Sie nicht möchten, dass Bibliotheken für Worker verfügbar sind, legen Sie packages auf FALSE fest.

Bibliotheksisolation und gehostetes RStudio

RStudio erstellt für jeden Benutzer einen eigenen Bibliothekspfad, so dass die Benutzer voneinander isoliert sind. Der Bibliothekspfad ist jedoch für Worker nicht verfügbar. Wenn Sie ein Paket in SparkR-Worker in einem Auftrag verwenden möchten, der über RStudio gestartet wurde, müssen zum Installieren Clusterbibliotheken verwendet werden.

Wenn Sie sparklyr-UDFs verwenden, sind alternativ die in RStudio installierten Pakete für Worker verfügbar, wenn Sie spark_apply(..., packages = TRUE) verwenden.

Häufig gestellte Fragen (FAQ)

Wie installiere ich ein Paket nur auf dem Treiber für alle R-Notebooks?

Legen Sie das Installationsverzeichnis explizit auf /databricks/spark/R/lib fest. Führen Sie beispielsweise install.packages("pckg", lib="/databricks/spark/R/lib") mit install.packages() aus. Die in /databricks/spark/R/lib installierten Pakete werden von allen Notebooks im Cluster gemeinsam genutzt, sind jedoch nicht für SparkR-Worker zugänglich. Wenn Sie Bibliotheken für Notebooks und auch für Worker freigeben möchten, verwenden Sie Clusterbibliotheken.

Werden Bibliotheken im Notebook-Bereich zwischengespeichert?

Für Bibliotheken im Notebook-Bereich in einem Cluster ist keine Zwischenspeicherung implementiert. Wenn Sie ein Paket in einem Notebook installieren und ein anderer Benutzer das gleiche Paket in einem anderen Notebook im gleichen Cluster installiert, wird das Paket heruntergeladen, kompiliert und erneut installiert.