renv
az Azure Databricksen
A renv egy R-csomag, amely lehetővé teszi a felhasználók számára a jegyzetfüzetre jellemző R-függőségek kezelését.
A használatával renv
létrehozhatja és kezelheti a projekt R-kódtár-környezetét, mentheti ezeknek a kódtáraknak az állapotát egy lockfile
, majd szükség szerint később visszaállíthatja a kódtárakat. Ezek az eszközök együttesen segíthetnek elszigeteltebbé, hordozhatóbbá és reprodukálhatóbbá tenni a projekteket.
Alapszintű renv
munkafolyamat
Ebben a szakaszban:
- Felszerel
renv
- Munkamenet inicializálása
renv
előre telepített R-kódtárakkal - További
renv
csomagok telepítése - R-jegyzetfüzetkörnyezet
renv
mentése a DBFS-be renv
A DBFS-ből kapottlockfile
környezet újratelepítése
Felszerel renv
Telepítheti renv
fürthatókörű tárként vagy jegyzetfüzet-hatókörű tárként. Jegyzetfüzet-hatókörű kódtárként való telepítéshez renv
használja a következőt:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
A Databricks egy CRAN-pillanatkép használatát javasolja adattárként a csomagverzió javításához.
Munkamenet inicializálása renv
előre telepített R-kódtárakkal
A használat renv
első lépése egy munkamenet inicializálása a használatával renv::init()
. Állítsa be libPaths
úgy, hogy az alapértelmezett letöltési hely legyen az R-jegyzetfüzet hatókörű tár elérési útja.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
További renv
csomagok telepítése
Mostantól az renv
's API-val telepítheti és eltávolíthatja az R-csomagokat. Ha például a legújabb verziót digest
szeretné telepíteni, futtassa a következőt egy jegyzetfüzetcellán belül.
renv::install("digest")
A régi verzió digest
telepítéséhez futtassa a következőt egy jegyzetfüzetcellán belül.
renv::install("digest@0.6.18")
A GitHubról való telepítéshez digest
futtassa a következőt egy jegyzetfüzetcellán belül.
renv::install("eddelbuettel/digest")
Ha a Bioconductorból szeretne csomagot telepíteni, futtassa a következőt egy jegyzetfüzetcellán belül.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Vegye figyelembe, hogy az API a renv::install
renv Cache-t használja.
R-jegyzetfüzetkörnyezet renv
mentése a DBFS-be
Futtassa egyszer a következő parancsot a környezet mentése előtt.
renv::settings$snapshot.type("all")
Ez a beállítás pillanatképet állít be renv
az összes telepített csomagról libPaths
, nem csak a jegyzetfüzetben jelenleg használt csomagokról. További információt a renv dokumentációjában talál.
Most futtathatja a következőt egy jegyzetfüzetcellán belül a környezet aktuális állapotának mentéséhez.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Ez az összes telepített libPaths
csomag rögzítésével frissíti a lockfile
frissítést. Emellett áthelyezi a lockfile
helyi fájlrendszerből a DBFS-be, ahol akkor is megmarad, ha a fürt leáll vagy újraindul.
renv
A DBFS-ből kapott lockfile
környezet újratelepítése
Először győződjön meg arról, hogy az új fürt ugyanolyan Databricks Runtime-verziót futtat, mint amelyiken először létrehozta a renv
környezetet. Ez biztosítja, hogy az előre telepített R-csomagok azonosak legyenek. Ezek listáját az egyes futtatókörnyezetek kibocsátási megjegyzéseiben találja. A renv telepítése után futtassa a következőt egy jegyzetfüzetcellán belül.
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"))
Ez átmásolja a lockfile
DBFS-ből a helyi fájlrendszerbe, majd visszaállítja a lockfile
fájlban megadott csomagokat.
Feljegyzés
A hiányzó adattárhibák elkerülése érdekében zárja ki a csomagokat és SparkR
a csomagokat a Rserve
csomag helyreállításából. Mindkét csomag előre telepítve van minden futtatókörnyezetben.
renv
Gyorsítótár
Ennek nagyon hasznos funkciója renv
a globális csomaggyorsítótár, amely a fürt összes renv
projektje között meg van osztva. Felgyorsítja a telepítési időt, és lemezterületet takarít meg. A renv
gyorsítótár nem gyorsítótárazza az devtools
API-val letöltött csomagokat, és install.packages()
nem tartalmaz más argumentumokat pkgs
.