Udostępnij za pośrednictwem


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 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.