renv
in Azure Databricks
renv is een R-pakket waarmee gebruikers R-afhankelijkheden kunnen beheren die specifiek zijn voor het notebook.
Met behulp van renv
kunt u de R-bibliotheekomgeving voor uw project maken en beheren, de status van deze bibliotheken opslaan in een lockfile
en later herstellen van bibliotheken, indien nodig. Deze hulpprogramma's kunnen samen helpen projecten geïsoleerde, draagbare en reproduceerbare projecten te maken.
Basiswerkstroom renv
In deze sectie:
-
Installeren
renv
-
Sessie initialiseren
renv
met vooraf geïnstalleerde R-bibliotheken -
Gebruiken
renv
om extra pakketten te installeren -
Gebruiken
renv
om uw R-notebookomgeving op te slaan in DBFS -
renv
Een omgeving opnieuw installeren die wordtlockfile
gegeven vanuit 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 deze libPaths
optie in om de standaarddownloadlocatie te wijzigen in uw R Notebook Scoped Library-pad.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
Gebruiken renv
om extra pakketten te installeren
U kunt nu de API van 's 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 wilt installeren vanuit Bioconductor, 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 wordt ingesteld renv
dat alle pakketten die zijn geïnstalleerd in een momentopname worden gemaakt libPaths
, niet alleen de pakketten die momenteel in het 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 update bijgewerkt lockfile
door alle pakketten vast te leggen die zijn geïnstalleerd op libPaths
. Het verplaatst ook uw 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 die wordt lockfile
gegeven vanuit DBFS
Zorg er eerst voor dat uw nieuwe cluster een identieke Databricks Runtime-versie uitvoert als de versie waarop u de omgeving voor het renv
eerst hebt gemaakt. Dit zorgt ervoor dat de vooraf geïnstalleerde R-pakketten identiek zijn. U vindt een lijst met deze items 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
.
Notitie
Als u fouten in de opslagplaats wilt voorkomen, sluit u de Rserve
en SparkR
pakketten uit van pakketherstel. Beide pakketten zijn vooraf geïnstalleerd in alle runtimes.
renv
Cache
Een zeer handige functie van renv
is de globale pakketcache, die wordt gedeeld door 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 argumenten dan pkgs
.