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 notitieblok zijn gekoppeld toegang tot die bibliotheek. Andere notitieblokken 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 bibliotheken die zijn geïnstalleerd in een werkruimte of cluster .

Vereisten

R-bibliotheken met notebookbereik zijn standaard ingeschakeld in Databricks Runtime 9.0 en hoger.

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.

Vanaf Databricks Runtime 9.0 zijn R-pakketten toegankelijk voor werkknooppunten en het stuurprogrammaknooppunt.

Notebook-scoped bibliotheken beheren in R

In deze sectie:

Een pakket installeren

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Databricks raadt aan 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 met notebookbereik met Spark UDF's

In deze sectie:

R-bibliotheken met notebookbereik en SparkR

Bibliotheken met notebookbereik zijn beschikbaar op SparkR-werkrollen; Importeer gewoon een bibliotheek om deze te gebruiken. U kunt bijvoorbeeld het volgende uitvoeren om een door caesar versleuteld bericht te genereren met een SparkR UDF:

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
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 van de werkrollen, zodat u ze kunt importeren en gebruiken voor werknemers. U kunt bijvoorbeeld het volgende uitvoeren om een door caesar versleuteld bericht te genereren met sparklyr::spark_apply():

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
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 in op packagesFALSE.

Isolatie van bibliotheek en gehoste RStudio

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

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(), voer 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 bibliotheken met clusterbereik.

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 in hetzelfde cluster, wordt het pakket gedownload, gecompileerd en opnieuw geïnstalleerd.