Dela via


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 renvkan du skapa och hantera R-biblioteksmiljön för projektet, spara tillståndet för dessa bibliotek till en lockfileoch 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

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 renvAPI för att installera och ta bort R-paket. Om du till exempel vill installera den senaste versionen av digestkör du följande i en notebook-cell.

renv::install("digest")

Om du vill installera en gammal version av digestkö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::installanvä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.