Aller au contenu principal

Bibliothèques R à l'échelle du Notebook

Les bibliothèques R délimitées au notebook vous permettent de créer et de modifier des environnements R personnalisés qui sont spécifiques à une session de notebook. Lorsque vous installez une bibliothèque R délimitée au notebook, seul le notebook actuel et tous les jobs associés à ce notebook ont accès à cette bibliothèque. D'autres notebooks associés au même cluster ne sont pas affectés.

Les bibliothèques limitées au Notebook ne persistent pas d'une session à l'autre. Vous devez réinstaller les bibliothèques à l'échelle du notebook au début de chaque session, ou chaque fois que le notebook est détaché d'un cluster.

Les bibliothèques délimitées aux notebooks sont automatiquement disponibles sur les Workers pour les UDF SparkR.

Pour installer des bibliothèques pour tous les Notebooks attachés à un cluster, utilisez les bibliothèques installées sur le cluster. Consultez les bibliothèques limitées au compute.

Installez les bibliothèques à portée de Notebook en R

Vous pouvez utiliser n’importe quelle méthode familière d’installation de packages dans R, telle que install.packages(), les API devtools ou Bioconductor.

Les packages R sont accessibles aux nœuds worker ainsi qu'au nœud driver.

Gérer les bibliothèques à portée de Notebook en R

Dans cette section :

Installez un package

R
require(devtools)

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

Databricks recommande d'utiliser un instantané CRAN comme repository pour garantir des résultats reproductibles.

R
devtools::install_github("klutometis/roxygen")

Supprimer un package R d'un environnement de Notebook

Pour supprimer une bibliothèque limitée à un Notebook d'un Notebook, utilisez la commande remove.packages().

R
remove.packages("caesar")

Bibliothèques R délimitées au Notebook avec des UDF Spark

Dans cette section :

Bibliothèques R à l'échelle du Notebook et SparkR

Les bibliothèques délimitées aux Notebooks sont disponibles sur les Worker SparkR ; il suffit d'importer une bibliothèque pour l'utiliser. Par exemple, vous pouvez exécuter ce qui suit pour générer un message chiffré par César avec une UDF SparkR :

R
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)

Bibliothèques R et sparklyr délimitées au Notebook

Par default, dans sparklyr::spark_apply(), l'argument packages est défini sur TRUE. Cela copie les bibliothèques du libPaths actuel vers les Workers, vous permettant de les importer et de les utiliser sur les Workers. Par exemple, vous pouvez exécuter ce qui suit pour générer un message chiffré par César avec sparklyr::spark_apply():

R
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)

Si vous ne voulez pas que les bibliothèques soient disponibles sur les workers, définissez packages sur FALSE.

Isolation des bibliothèques et RStudio hébergé

RStudio crée un chemin de bibliothèque séparé pour chaque utilisateur ; par conséquent, les utilisateurs sont isolés les uns des autres. Cependant, le chemin de la bibliothèque n'est pas disponible sur les Worker. Si vous voulez utiliser un package à l'intérieur des Workers SparkR dans un Job lancé depuis RStudio, vous devez l'installer en utilisant les bibliothèques de cluster.

Alternativement, si vous utilisez des UDF sparklyr, les packages installés dans RStudio sont disponibles pour les Worker lors de l’utilisation de spark_apply(..., packages = TRUE).

Questions fréquemment posées (FAQ)

Comment installer un package uniquement sur le driver pour tous les notebooks R ?

Définissez explicitement le répertoire d'installation sur /databricks/spark/R/lib. Par exemple, avec install.packages(), exécutez install.packages("pckg", lib="/databricks/spark/R/lib"). Les packages installés dans /databricks/spark/R/lib sont partagés entre tous les Notebooks sur le cluster, mais ils ne sont pas accessibles aux Worker SparkR. Pour partager des bibliothèques entre les Notebooks et aussi les Workers, utilisez les bibliothèques de clusters.

Les bibliothèques limitées au Notebook sont-elles mises en cache ?

Aucune mise en cache n'est implémentée pour les bibliothèques spécifiques au Notebook sur un cluster. Si vous installez un package dans un notebook, et qu'un autre utilisateur installe le même package dans un autre notebook sur le même cluster, le package est download, compilé, et installé de nouveau.