Compartir vía


Bibliotecas de R cuyo ámbito es un cuaderno

Las bibliotecas de R con ámbito de cuaderno permiten crear y modificar entornos de R personalizados que son específicos de una sesión de cuaderno. Al instalar una biblioteca de ámbito de cuaderno de R, solo el cuaderno actual y los trabajos asociados a él tienen acceso a la biblioteca en cuestión. Los otros cuadernos asociados al mismo clúster no se ven afectados.

Las bibliotecas con ámbito de cuaderno no se conservan entre sesiones. Debe volver a instalar las bibliotecas con ámbito de cuaderno al principio de cada sesión o siempre que el cuaderno se desasocie de un clúster.

Las bibliotecas con ámbito de cuaderno están disponibles automáticamente en los nodos de trabajo de las funciones definidas por el usuario de SparkR.

Para instalar bibliotecas para todos los cuadernos conectados a un clúster, use las bibliotecas instaladas por el clúster. Consulte Bibliotecas del clúster.

Instalación de bibliotecas con ámbito de cuaderno con en R

Puede usar cualquier método conocido de instalación de paquetes en R, como install.packages(), las API de devtoolso Bioconductor.

Los paquetes de R son accesibles para los nodos de trabajo, así como para el nodo de controlador.

Administración de bibliotecas con ámbito de cuaderno en R

En esta sección:

Instalar un paquete

require(devtools)

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

Databricks recomienda usar una instantánea CRAN como repositorio para garantizar resultados reproducibles.

devtools::install_github("klutometis/roxygen")

Eliminación de un paquete de R de un entorno de cuaderno

Para quitar una biblioteca con ámbito de cuaderno de un cuaderno, use el comando remove.packages().

remove.packages("caesar")

Bibliotecas de R con ámbito de cuaderno con funciones definidas por el usuario de Spark

En esta sección:

Bibliotecas de R con ámbito de cuaderno y SparkR

Las bibliotecas con ámbito de cuaderno están disponibles en los nodos de trabajo de SparkR; solo tiene que importar una biblioteca para usarla. Por ejemplo, puede ejecutar lo siguiente para generar un mensaje con cifrado césar con una función definida por el usuario de 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)

Bibliotecas de R con ámbito de cuaderno y sparklyr

De forma predeterminada, en sparklyr::spark_apply(), el argumento packages está establecido en TRUE. Este valor copia las bibliotecas del objeto libPaths actual en los nodos de trabajo, lo que le permite importarlas y usarlas en ellos. Por ejemplo, puede ejecutar lo siguiente para generar un mensaje con cifrado césar con :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)

Si no quiere que las bibliotecas estén disponibles en los nodos de trabajo, establezca packages en FALSE.

Aislamiento de bibliotecas y RStudio hospedado

RStudio crea una ruta de acceso de biblioteca distinta para cada usuario; por lo tanto, los usuarios están aislados entre sí. Sin embargo, la ruta de acceso de biblioteca no está disponible en los nodos de trabajo. Si quiere usar un paquete dentro de los nodos de trabajo de SparkR en un trabajo iniciado desde RStudio, debe instalarlo mediante bibliotecas de clúster.

Como alternativa, si usa funciones definidas por el usuario de sparklyr, los paquetes instalados en RStudio están disponibles para los nodos de trabajo cuando se usa spark_apply(..., packages = TRUE).

Preguntas más frecuentes

¿Cómo se instala un paquete solo en el controlador en todos los cuadernos de R?

Establezca explícitamente el directorio de instalación en /databricks/spark/R/lib. Por ejemplo, con install.packages(), ejecute install.packages("pckg", lib="/databricks/spark/R/lib"). Los paquetes instalados en /databricks/spark/R/lib se comparten entre todos los cuadernos del clúster, pero no son accesibles para los nodos de trabajo de SparkR. Para compartir bibliotecas entre cuadernos y también entre trabajadores, utilice bibliotecas de cluster.

¿Las bibliotecas con ámbito de cuaderno se almacenan en caché?

No hay ningún almacenamiento en caché implementado para las bibliotecas con ámbito de cuaderno de un clúster. Si instala un paquete en un cuaderno y otro usuario instala el mismo paquete en otro cuaderno del mismo clúster, el paquete se descarga, se compila y se instala de nuevo.