Jegyzetfüzet-hatókörön belüli R-kódtárak

A jegyzetfüzet-hatókörű R-kódtárak lehetővé teszik a jegyzetfüzet-munkamenetre jellemző egyéni R-környezetek létrehozását és módosítását. R-jegyzetfüzet hatókörű tár telepítésekor csak az aktuális jegyzetfüzet és a jegyzetfüzethez társított feladatok férhetnek hozzá az adott tárhoz. Az ugyanahhoz a fürthöz csatolt egyéb jegyzetfüzetekre nincs hatással.

A jegyzetfüzet-hatókörű kódtárak nem maradnak meg a munkamenetek között. Minden munkamenet elején újra kell telepítenie a jegyzetfüzet-hatókörű kódtárakat, vagy amikor a jegyzetfüzet le van választva egy fürtről.

A jegyzetfüzet-hatókörű kódtárak automatikusan elérhetők a SparkR UDF-ek feldolgozói számára.

A fürthöz csatolt összes jegyzetfüzet kódtárainak telepítéséhez használjon fürtre telepített kódtárakat. Lásd: Fürtkódtárak.

Jegyzetfüzet-hatókörű kódtárak telepítése az R-ben

Az R-csomagok telepítésének bármely ismerős módszerét használhatja, például az install.packages(), a devtools API-kat vagy a Bioconductort.

A Databricks Runtime 9.0-tól kezdve az R-csomagok a feldolgozó csomópontok és az illesztőprogram-csomópontok számára is elérhetők.

Jegyzetfüzet-hatókörű kódtárak kezelése az R-ben

Ebben a szakaszban:

Csomag telepítése

require(devtools)

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

A Databricks egy CRAN-pillanatkép használatát javasolja adattárként a reprodukálható eredmények garantálása érdekében.

devtools::install_github("klutometis/roxygen")

R-csomag eltávolítása jegyzetfüzet-környezetből

Ha el szeretne távolítani egy jegyzetfüzet hatókörű tárat egy jegyzetfüzetből, használja a remove.packages() parancsot.

remove.packages("caesar")

Jegyzetfüzet-hatókörű R-kódtárak Spark UDF-ekkel

Ebben a szakaszban:

Jegyzetfüzet-hatókörű R-kódtárak és SparkR

A jegyzetfüzet-hatókörű kódtárak a SparkR-feldolgozókban érhetők el; csak importáljon egy tárat a használatához. Az alábbiak futtatásával például létrehozhat egy cézár által titkosított üzenetet egy SparkR UDF használatával:

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)

Jegyzetfüzet-hatókörű R-kódtárak és sparklyr

Az argumentum alapértelmezés szerint sparklyr::spark_apply()a packages következőre TRUEvan állítva: . Ezzel átmásolja az aktuális libPaths kódtárakat a feldolgozóknak, így importálhatja és használhatja őket a feldolgozókon. Futtathatja például az alábbi parancsot egy cézár által titkosított üzenet létrehozásához a következővel 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)

Ha nem szeretné, hogy a kódtárak elérhetők legyenek a feldolgozókon, állítsa a következőre packagesFALSE: .

Könyvtárelkülönítés és üzemeltetett RStudio

Az RStudio külön tár elérési útját hozza létre minden felhasználó számára; ezért a felhasználók el vannak különítve egymástól. A tár elérési útja azonban nem érhető el a dolgozók számára. Ha egy Csomagot szeretne használni a SparkR-feldolgozókban az RStudio-ból indított feladatban, fürtkódtárak használatával kell telepítenie.

Ha sparklyr UDF-eket használ, az RStudio-on belül telepített csomagok a dolgozók számára is elérhetők a használat spark_apply(..., packages = TRUE)során.

Gyakori kérdések (GYIK)

Hogyan csak az illesztőprogramra telepít egy csomagot az összes R-jegyzetfüzethez?

Explicit módon állítsa be a telepítési könyvtárat a következőre /databricks/spark/R/lib: . Például a következővel install.packages(): futtatás install.packages("pckg", lib="/databricks/spark/R/lib"). A telepített /databricks/spark/R/lib csomagok meg vannak osztva a fürt összes jegyzetfüzetében, de nem érhetők el a SparkR-feldolgozók számára. A tárak jegyzetfüzetek és feldolgozók közötti megosztásához használjon fürttárakat.

Gyorsítótárazva vannak a jegyzetfüzet-hatókörű kódtárak?

A fürt jegyzetfüzet-hatókörű kódtáraihoz nincs gyorsítótárazás implementálva. Ha egy csomagot egy jegyzetfüzetbe telepít, és egy másik felhasználó ugyanarra a fürtre telepíti ugyanazt a csomagot egy másik jegyzetfüzetben, a rendszer letölti, lefordítja és újra telepíti a csomagot.