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
- R-bibliotek med notebook-omfattning och sparklyr
- Biblioteksisolering och värdhanterad RStudio
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.