Dela via


Bibliotek med notebook-omfång

Med R-bibliotek med notebook-omfattning kan du skapa och ändra anpassade R-miljöer som är specifika för en notebook-session. När du installerar ett R-bibliotek med notebook-omfång har endast den aktuella notebook-filen och alla jobb som är associerade med den notebook-filen åtkomst till det biblioteket. Andra notebook-filer som är kopplade till samma kluster påverkas inte.

Bibliotek med notebook-omfång bevaras inte mellan sessioner. Du måste installera om bibliotek med notebook-omfång i början av varje session, eller när anteckningsboken kopplas från ett kluster.

Bibliotek med notebook-omfång är automatiskt tillgängliga för arbetare för SparkR UDF:er.

Om du vill installera bibliotek för alla notebook-filer som är anslutna till ett kluster använder du klusterinstallerade bibliotek. Se Klusterbibliotek.

Installera bibliotek med notebook-omfång i R

Du kan använda valfri välbekant metod för att installera paket i R, till exempel install.packages(), devtools-API:er eller Bioconductor.

R-paket är tillgängliga för arbetsnoder samt för drivrutinsnoden.

Hantera bibliotek med notebook-omfång i R

I detta avsnitt:

Installera ett paket

require(devtools)

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

Databricks rekommenderar att du använder en CRAN-ögonblicksbild som lagringsplats för att garantera reproducerbara resultat.

devtools::install_github("klutometis/roxygen")

Ta bort ett R-paket från en notebook-miljö

Om du vill ta bort ett bibliotek med notebook-omfång från en notebook-fil använder du remove.packages() kommandot .

remove.packages("caesar")

R-bibliotek med notebook-omfattning med Spark-UDF:er

I detta avsnitt:

R-bibliotek med notebook-omfattning och SparkR

Bibliotek med notebook-omfång är tillgängliga för SparkR-arbetare. importera bara ett bibliotek för att använda det. Du kan till exempel köra följande för att generera ett caesarkrypterat meddelande med en SparkR UDF:

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-bibliotek med notebook-omfattning och sparklyr

I är argumentet som standard sparklyr::spark_apply()packages inställt på TRUE. Detta kopierar biblioteken i strömmen libPaths till arbetarna, så att du kan importera och använda dem på arbetare. Du kan till exempel köra följande för att generera ett caesarkrypterat meddelande med sparklyr::spark_apply():

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)

Om du inte vill att bibliotek ska vara tillgängliga för arbetare anger du packages till FALSE.

Biblioteksisolering och värdhanterad RStudio

RStudio skapar en separat bibliotekssökväg för varje användare. därför isoleras användarna från varandra. Bibliotekssökvägen är dock inte tillgänglig för arbetare. Om du vill använda ett paket i SparkR-arbetare i ett jobb som startas från RStudio måste du installera det med hjälp av klusterbibliotek.

Om du använder sparklyr-UDF:er är paket som installerats i RStudio tillgängliga för arbetare när de använder spark_apply(..., packages = TRUE).

Vanliga frågor och svar

Hur gör jag för att installera ett paket på bara drivrutinen för alla R-notebook-filer?

Ställ uttryckligen in installationskatalogen på /databricks/spark/R/lib. Med kör install.packages("pckg", lib="/databricks/spark/R/lib")du till exempel install.packages(). Paket som är installerade i /databricks/spark/R/lib delas mellan alla notebook-filer i klustret, men de är inte tillgängliga för SparkR-arbetare. Om du vill dela bibliotek mellan notebook-filer och även arbetare använder du klusterbibliotek.

Cachelagras bibliotek med notebook-omfång?

Ingen cachelagring har implementerats för bibliotek med notebook-omfång i ett kluster. Om du installerar ett paket i en notebook-fil och en annan användare installerar samma paket i en annan notebook-fil i samma kluster laddas paketet ned, kompileras och installeras igen.