Delen via


R-bibliotheken met notebookbereik

Met R-bibliotheken met notebookbereik kunt u aangepaste R-omgevingen maken en wijzigen die specifiek zijn voor een notebooksessie. Wanneer u een bibliotheek met R-notebookbereik installeert, hebben alleen het huidige notebook en alle taken die aan dat notebook zijn gekoppeld toegang tot die bibliotheek. Andere notebooks die aan hetzelfde cluster zijn gekoppeld, worden niet beïnvloed.

Bibliotheken met notebookbereik blijven niet behouden tussen sessies. U moet bibliotheken met notebookbereik opnieuw installeren aan het begin van elke sessie of wanneer het notebook is losgekoppeld van een cluster.

Bibliotheken met notebookbereik zijn automatisch beschikbaar voor werkrollen voor SparkR UDF's.

Als u bibliotheken wilt installeren voor alle notebooks die zijn gekoppeld aan een cluster, gebruikt u door het cluster geïnstalleerde bibliotheken. Zie Clusterbibliotheken.

Notebook-scoped bibliotheken installeren in R

U kunt elke vertrouwde methode gebruiken voor het installeren van pakketten in R, zoals install.packages(), de devtools-API's of Bioconductor.

R-pakketten zijn toegankelijk voor werkknooppunten en het stuurprogrammaknooppunt.

Notebook-scoped bibliotheken beheren in R

In deze sectie:

Een pakket installeren

require(devtools)

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

Databricks raadt aan om een CRAN-momentopname te gebruiken als opslagplaats om reproduceerbare resultaten te garanderen.

devtools::install_github("klutometis/roxygen")

Een R-pakket verwijderen uit een notebookomgeving

Gebruik de remove.packages() opdracht om een bibliotheek met notebookbereik uit een notebook te verwijderen.

remove.packages("caesar")

R-bibliotheken binnen notebookbereik met Spark UDF's

In deze sectie:

R-bibliotheken met notebookbereik en SparkR

Er zijn notebookbibliotheken beschikbaar voor SparkR-werkrollen; Importeer gewoon een bibliotheek om deze te gebruiken. U kunt bijvoorbeeld het volgende uitvoeren om een met caesar versleuteld bericht te genereren met een 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-bibliotheken met notebookbereik en sparklyr

sparklyr::spark_apply()Standaard is het packages argument ingesteld op TRUE. Hiermee kopieert u bibliotheken in de huidige libPaths versie naar de werknemers, zodat u ze op werknemers kunt importeren en gebruiken. U kunt bijvoorbeeld het volgende uitvoeren om een met caesar versleuteld bericht te genereren met 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)

Als u niet wilt dat bibliotheken beschikbaar zijn voor werkrollen, stelt u deze optie in packagesFALSE.

Bibliotheekisolatie en gehoste RStudio

RStudio maakt een afzonderlijk bibliotheekpad voor elke gebruiker; daarom zijn gebruikers geïsoleerd van elkaar. Het bibliotheekpad is echter niet beschikbaar voor werkrollen. Als u een pakket in SparkR-werkrollen wilt gebruiken in een taak die vanuit RStudio is gestart, moet u dit installeren met behulp van clusterbibliotheken.

Als u sparklyr UDF's gebruikt, zijn pakketten die in RStudio zijn geïnstalleerd, ook beschikbaar voor werknemers bij gebruik spark_apply(..., packages = TRUE).

Veelgestelde vragen

Hoe kan ik een pakket installeren op alleen het stuurprogramma voor alle R-notebooks?

Stel de installatiemap expliciet in op /databricks/spark/R/lib. Bijvoorbeeld, met install.packages(), uitvoeren install.packages("pckg", lib="/databricks/spark/R/lib"). Pakketten die zijn geïnstalleerd, /databricks/spark/R/lib worden gedeeld in alle notebooks in het cluster, maar zijn niet toegankelijk voor SparkR-werkrollen. Als u bibliotheken wilt delen tussen notebooks en ook werkrollen, gebruikt u clusterbibliotheken.

Worden notebookbibliotheken in de cache opgeslagen?

Er is geen caching geïmplementeerd voor notebookbibliotheken in een cluster. Als u een pakket in een notebook installeert en een andere gebruiker hetzelfde pakket installeert in een ander notebook op hetzelfde cluster, wordt het pakket gedownload, gecompileerd en opnieuw geïnstalleerd.