renv
op Azure Databricks
renv is een R-pakket waarmee gebruikers R-afhankelijkheden kunnen beheren die specifiek zijn voor het notebook.
Met behulp renv
van kunt u de R-bibliotheekomgeving voor uw project maken en beheren, de status van deze bibliotheken opslaan in een lockfile
en desgewenst later bibliotheken herstellen. Samen kunnen deze hulpprogramma's projecten geïsoleerder, draagbaarder en reproduceerbaar maken.
Basiswerkstroom renv
In deze sectie:
- Installeren
renv
- Sessie initialiseren
renv
met vooraf geïnstalleerde R-bibliotheken - Gebruik
renv
om extra pakketten te installeren - Gebruiken
renv
om uw R-notebookomgeving op te slaan in DBFS renv
Een omgeving opnieuw installeren vanuitlockfile
DBFS
Installeren renv
U kunt installeren renv
als een bibliotheek met clusterbereik of als een bibliotheek met notebookbereik. Als u wilt installeren renv
als een bibliotheek met notebookbereik, gebruikt u:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
Databricks raadt aan om een CRAN-momentopname te gebruiken als opslagplaats om de pakketversie te herstellen.
Sessie initialiseren renv
met vooraf geïnstalleerde R-bibliotheken
De eerste stap bij het gebruik renv
is het initialiseren van een sessie met behulp van renv::init()
. Stel in libPaths
om de standaarddownloadlocatie te wijzigen in het bibliotheekpad met R-notebookbereik.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
Gebruik renv
om extra pakketten te installeren
U kunt nu de API gebruiken renv
om R-pakketten te installeren en te verwijderen. Als u bijvoorbeeld de nieuwste versie van digest
wilt installeren, voert u het volgende uit in een notebookcel.
renv::install("digest")
Als u een oude versie van digest
wilt installeren, voert u het volgende uit in een notebookcel.
renv::install("digest@0.6.18")
Als u wilt installeren digest
vanuit GitHub, voert u het volgende uit in een notebookcel.
renv::install("eddelbuettel/digest")
Als u een pakket van Bioconductor wilt installeren, voert u het volgende uit in een notebookcel.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Houd er rekening mee dat de renv::install
API gebruikmaakt van de renv-cache.
Gebruiken renv
om uw R-notebookomgeving op te slaan in DBFS
Voer de volgende opdracht eenmaal uit voordat u de omgeving opslaat.
renv::settings$snapshot.type("all")
Hiermee stelt u renv
een momentopname in van alle pakketten die zijn geïnstalleerd in libPaths
, niet alleen de pakketten die momenteel in de notebook worden gebruikt. Zie de renv-documentatie voor meer informatie.
U kunt nu het volgende uitvoeren in een notebookcel om de huidige status van uw omgeving op te slaan.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Hiermee wordt de lockfile
bijgewerkt door alle pakketten vast te leggen die zijn geïnstalleerd op libPaths
. U wordt ook verplaatst lockfile
van het lokale bestandssysteem naar DBFS, waar het blijft bestaan, zelfs als uw cluster wordt beëindigd of opnieuw wordt opgestart.
renv
Een omgeving opnieuw installeren vanuit lockfile
DBFS
Zorg er eerst voor dat uw nieuwe cluster een identieke Versie van Databricks Runtime uitvoert als de versie waarop u de omgeving het renv
eerst hebt gemaakt. Dit zorgt ervoor dat de vooraf geïnstalleerde R-pakketten identiek zijn. U vindt een lijst met deze in de releaseopmerkingen van elke runtime. Nadat u renv hebt geïnstalleerd, voert u het volgende uit in een notebookcel.
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"))
Hiermee kopieert u uw lockfile
van DBFS naar het lokale bestandssysteem en herstelt u vervolgens alle pakketten die zijn opgegeven in de lockfile
.
Opmerking
Sluit de pakketten en SparkR
uit van pakketherstel om fouten in de Rserve
opslagplaats te voorkomen. Beide pakketten zijn vooraf geïnstalleerd in alle runtimes.
renv
Cache
Een zeer handige functie van renv
is de globale pakketcache, die wordt gedeeld met alle renv
projecten in het cluster. Het versnelt de installatietijden en bespaart schijfruimte. De renv
cache slaat geen pakketten op die zijn gedownload via de devtools
API of install.packages()
met andere aanvullende argumenten dan pkgs
.