Biblioteki języka R o zakresie notesu
Biblioteki języka R o zakresie notesu umożliwiają tworzenie i modyfikowanie niestandardowych środowisk języka R specyficznych dla sesji notesu. Podczas instalowania biblioteki o zakresie notesu języka R tylko bieżący notes i wszystkie zadania skojarzone z tym notesem mają dostęp do tej biblioteki. Nie ma to wpływu na inne notesy dołączone do tego samego klastra.
Biblioteki o zakresie notesu nie są utrwalane między sesjami. Należy ponownie zainstalować biblioteki o zakresie notesu na początku każdej sesji lub zawsze, gdy notes jest odłączony od klastra.
Biblioteki bibliotek o zakresie notesu są automatycznie dostępne dla procesów roboczych dla funkcji zdefiniowanych przez użytkownika platformy SparkR.
Aby zainstalować biblioteki dla wszystkich notesów dołączonych do klastra, użyj bibliotek zainstalowanych w klastrze. Zobacz Biblioteki klastrów.
Instalowanie bibliotek o zakresie notesu w języku R
Możesz użyć dowolnej znanej metody instalowania pakietów w języku R, takiej jak install.packages(), interfejsy API devtools lub Bioconductor.
Pakiety języka R są dostępne dla węzłów roboczych, a także węzła sterownika.
Zarządzanie bibliotekami o zakresie notesu w języku R
W tej sekcji:
Instalowanie pakietu
require(devtools)
install_version(
package = "caesar",
repos = "http://cran.us.r-project.org"
)
Usługa Databricks zaleca użycie migawki CRAN jako repozytorium w celu zagwarantowania powtarzalnych wyników.
devtools::install_github("klutometis/roxygen")
Usuwanie pakietu języka R ze środowiska notesu
Aby usunąć bibliotekę o zakresie notesu z notesu, użyj remove.packages()
polecenia .
remove.packages("caesar")
Biblioteki języka R o zakresie notesu z funkcjami zdefiniowanymi przez użytkownika platformy Spark
W tej sekcji:
- Biblioteki języka R o zakresie notesu i sparkR
- Biblioteki języka R o zakresie notesu i interfejs sparklyr
- Izolacja biblioteki i hostowany program RStudio
Biblioteki języka R o zakresie notesu i sparkR
Biblioteki o zakresie notesu są dostępne w przypadku procesów roboczych platformy SparkR; po prostu zaimportuj bibliotekę, aby jej używać. Na przykład możesz uruchomić następujące polecenie, aby wygenerować zaszyfrowany przez cezara komunikat z funkcją UDF platformy SparkR:
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)
Biblioteki języka R o zakresie notesu i interfejs sparklyr
Domyślnie w elememencie sparklyr::spark_apply()
packages
argument ma wartość TRUE
. Spowoduje to skopiowanie bibliotek w bieżącej wersji libPaths
do procesów roboczych, co umożliwia importowanie ich i używanie ich w ramach procesów roboczych. Na przykład możesz uruchomić następujące polecenie, aby wygenerować zaszyfrowany przez cezara komunikat za pomocą polecenia 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)
Jeśli nie chcesz, aby biblioteki są dostępne dla procesów roboczych, ustaw wartość packages
FALSE
.
Izolacja biblioteki i hostowany program RStudio
Program RStudio tworzy oddzielną ścieżkę biblioteki dla każdego użytkownika; w związku z tym użytkownicy są odizolowani od siebie. Jednak ścieżka biblioteki nie jest dostępna dla procesów roboczych. Jeśli chcesz użyć pakietu wewnątrz procesów roboczych sparkR w zadaniu uruchomionym z poziomu programu RStudio, musisz zainstalować go przy użyciu bibliotek klastra.
Alternatywnie, jeśli używasz funkcji UDF sparklyr, pakiety zainstalowane wewnątrz programu RStudio są dostępne dla procesów roboczych w przypadku korzystania z programu spark_apply(..., packages = TRUE)
.
Często zadawane pytania
Jak mogę zainstalować pakiet tylko dla wszystkich notesów języka R?
Jawnie ustaw katalog instalacyjny na /databricks/spark/R/lib
. Na przykład za pomocą polecenia install.packages()
uruchom polecenie install.packages("pckg", lib="/databricks/spark/R/lib")
.
Pakiety zainstalowane w programie /databricks/spark/R/lib
są współużytkowane we wszystkich notesach w klastrze, ale nie są dostępne dla procesów roboczych sparkR. Aby udostępniać biblioteki między notesami, a także procesami roboczymi, użyj bibliotek klastra.
Czy biblioteki o zakresie notesu są buforowane?
W klastrze nie zaimplementowano buforowania dla bibliotek o zakresie notesu. Jeśli zainstalujesz pakiet w notesie, a inny użytkownik zainstaluje ten sam pakiet w innym notesie w tym samym klastrze, pakiet zostanie pobrany, skompilowany i zainstalowany ponownie.