renv
på Azure Databricks
renv är ett R-paket som låter användare hantera R-beroenden som är specifika för notebook-filen.
Med hjälp av renv
kan du skapa och hantera R-biblioteksmiljön för projektet, spara tillståndet för dessa bibliotek till en lockfile
och senare återställa biblioteken efter behov. Tillsammans kan dessa verktyg göra projekten mer isolerade, portabla och reproducerbara.
Grundläggande renv
arbetsflöde
I detta avsnitt:
-
Installera
renv
-
Initiera
renv
session med förinstallerade R-bibliotek -
Använd
renv
för att installera ytterligare paket -
Använd
renv
för att spara din R Notebook-miljö i DBFS -
Installera om en
renv
miljö som ges frånlockfile
DBFS
Installera renv
Du kan installera renv
som ett klusteromfångsbibliotek eller som ett bibliotek med notebook-omfång. Om du vill installera renv
som ett bibliotek med notebook-omfång använder du:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
Databricks rekommenderar att du använder en CRAN-ögonblicksbild som lagringsplats för att åtgärda paketversionen.
Initiera renv
session med förinstallerade R-bibliotek
Det första steget när du använder renv
är att initiera en session med hjälp av renv::init()
. Ange libPaths
för att ändra standardplatsen för nedladdning till din R-notebooksspecifika bibliotekssökväg .
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
Använd renv
för att installera ytterligare paket
Du kan nu använda renv
API för att installera och ta bort R-paket. Om du till exempel vill installera den senaste versionen av digest
kör du följande i en notebook-cell.
renv::install("digest")
Om du vill installera en gammal version av digest
kör du följande i en notebook-cell.
renv::install("digest@0.6.18")
digest
Installera från GitHub genom att köra följande i en notebook-cell.
renv::install("eddelbuettel/digest")
Om du vill installera ett paket från Bioconductor kör du följande i en notebook-cell.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Observera att API:et renv::install
använder renv Cache.
Använd renv
för att spara din R Notebook-miljö i DBFS
Kör följande kommando en gång innan du sparar miljön.
renv::settings$snapshot.type("all")
Detta ställer in renv
på ögonblicksbild av alla paket som är installerade i libPaths
, inte bara de som för närvarande används i notebook-filen. Mer information finns i renv-dokumentationen .
Nu kan du köra följande i en notebook-cell för att spara miljöns aktuella tillstånd.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Detta uppdaterar lockfile
genom att samla in alla paket som är installerade på libPaths
. Den flyttar även din lockfile
från det lokala filsystemet till DBFS-, där den bevaras även om klustret avslutas eller startas om.
Installera om en renv
miljö som ges från lockfile
DBFS
Kontrollera först att det nya klustret kör en identisk Databricks Runtime-version som den du först skapade miljön på renv
. Detta säkerställer att de förinstallerade R-paketen är identiska. Du hittar en lista över dessa i varje körmiljös versionsinformation. När du har installerat renv kör du följande i en notebook-cell.
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"))
Detta kopierar din lockfile
från DBFS till det lokala filsystemet och återställer sedan alla paket som anges i lockfile
.
Kommentar
Om du vill undvika att lagringsplatsens fel saknas undantar du paketen Rserve
och SparkR
från paketåterställning. Båda dessa paket är förinstallerade i alla körningar.
renv
Cache
En mycket användbar funktion renv
i är dess globala paketcache, som delas mellan alla renv
projekt i klustret. Det påskyndar installationstiderna och sparar diskutrymme. Cacheminnet renv
cachelagr inte paket som laddats ned via API:et devtools
eller install.packages()
med andra argument än pkgs
.