renv
en Azure Databricks
renv es un paquete de R que permite a los usuarios administrar dependencias de R específicas del cuaderno.
Con renv
, puede crear y administrar el entorno de biblioteca de R para el proyecto, guardar el estado de estas bibliotecas en lockfile
y, posteriormente, restaurar las bibliotecas según sea necesario. Juntas, estas herramientas pueden ayudar a que los proyectos sean más aislados, sean portables y se puedan reproducir.
Flujo de trabajo básico de renv
En esta sección:
- Instalación de
renv
- Inicializar la sesión
renv
con bibliotecas de R preinstaladas - Utilizar
renv
para instalar paquetes adicionales - Utilizar
renv
para guardar el entorno de cuadernos de R en DBFS - Reinstalar un entorno
renv
dado enlockfile
desde DBFS
Instalarrenv
Puede instalar renv
como una biblioteca de ámbito de clúster o como una biblioteca de ámbito de cuaderno. Para instalar renv
como una biblioteca de ámbito de cuaderno, utilice:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
Databricks recomienda usar una instantánea de CRAN como repositorio para corregir la versión del paquete.
Inicializar la sesión renv
con bibliotecas de R preinstaladas
El primer paso al usar renv
es inicializar una sesión mediante renv::init()
. Establezca libPaths
para cambiar la ubicación de descarga predeterminada para que sea la ruta de librería de ámbito de cuaderno de R.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
Utilizar renv
para instalar paquetes adicionales
Ahora puede usar la API de renv
para instalar y quitar paquetes de R. Por ejemplo, para instalar la versión más reciente de digest
, ejecute lo siguiente dentro de una celda del cuaderno.
renv::install("digest")
Para instalar una versión anterior de digest
, ejecute lo siguiente dentro de una celda del cuaderno.
renv::install("digest@0.6.18")
Para instalar digest
desde GitHub, ejecute lo siguiente dentro de una celda del cuaderno.
renv::install("eddelbuettel/digest")
Para instalar un paquete desde Bioconductor, ejecute lo siguiente dentro de una celda del cuaderno.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Tenga en cuenta que la API renv::install
usa el Caché renv.
Utilice renv
para guardar el entorno de cuadernos de R en DBFS
Ejecute el siguiente comando una vez antes de guardar el entorno.
renv::settings$snapshot.type("all")
Esto establece renv
para crear una instantánea de todos los paquetes instalados en libPaths
, no solo los que se usan actualmente en el cuaderno. Consulte la documentación renv existente para obtener más información.
Ahora puede ejecutar lo siguiente dentro de una celda del cuaderno para guardar el estado actual de su entorno.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
De este modo, se actualiza lockfile
mediante la captura de todos los paquetes instalados en libPaths
. También mueve su lockfile
desde el sistema de archivos local a DBFS, donde se conserva incluso si el clúster finaliza o se reinicia.
Reinstalar un entorno dado renv
en lockfile
desde DBFS
En primer lugar, asegúrese de que el nuevo clúster ejecuta una versión de Databricks Runtime idéntica a la que creó por primera vez en el entorno renv
. Esto garantiza que los paquetes de R preinstalados son idénticos. Puede encontrar una lista de estos elementos en las notas de la versión de cada entorno de ejecución. Después de instalar renv, ejecute lo siguiente dentro de una celda del cuaderno.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths()))
renv::restore(lockfile="/dbfs/PATH/TO/WHERE/YOU/SAVED/renv.lock", exclude=c("Rserve", "SparkR"))
De este modo, se copia su lockfile
de DBFS en el sistema de archivos local y, a continuación, restaura los paquetes especificados en lockfile
.
Nota:
Para evitar errores de repositorio ausentes, excluya los paquetes Rserve
y SparkR
de la restauración del paquete. Ambos paquetes están preinstalados en todos los entornos de ejecución.
renv
Caché
Una característica muy útil de renv
es su paquete de caché global, que se comparte entre todos los proyectos renv
del clúster. Acelera los tiempos de instalación y ahorra espacio en disco. La memoria de caché renv
no almacena en caché los paquetes descargados a través de la API devtools
o install.packages()
con argumentos adicionales distintos de pkgs
.