Bagikan melalui


renv di Azure Databricks

renv adalah paket R yang memungkinkan pengguna mengelola dependensi R khusus untuk buku catatan.

Menggunakan renv, Anda dapat membuat dan mengelola lingkungan pustaka R untuk proyek Anda, menyimpan status pustaka ini ke lockfile, kemudian memulihkan pustaka sesuai kebutuhan. Secara serentak, alat-alat ini dapat membantu membuat proyek lebih terisolasi, portabel, dan dapat direproduksi.

Alur kerja renv dasar

Di bagian ini:

Pasang renv

Anda dapat menginstal renv sebagai pustaka cakupan kluster atau sebagai pustaka cakupan buku catatan. Untuk menginstal renv sebagai pustaka cakupan buku catatan, gunakan:

require(devtools)

install_version(
  package = "renv",
  repos   = "http://cran.us.r-project.org"
)

Databricks merekomendasikan menggunakan snapshot CRAN sebagai repositori untuk memperbaiki versi paket.

Menginisialisasi renv sesi dengan pustaka R yang telah diinstal sebelumnya

Langkah pertama saat menggunakan renv adalah menginisialisasi sesi menggunakan renv::init(). Atur libPaths untuk mengubah lokasi pengunduhan default menjadi jalur pustaka cakupan buku catatan R Anda.

renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())

Gunakan renv untuk menginstal paket tambahan

Anda sekarang dapat menggunakan renvAPI untuk menginstal dan menghapus paket R. Misalnya, untuk menginstal versi digest terbaru, jalankan yang berikut di dalam sel buku catatan.

renv::install("digest")

Untuk memasang versi digest yang lama, jalankan yang berikut di dalam sel buku catatan.

renv::install("digest@0.6.18")

Untuk menginstal digest dari GitHub, jalankan yang berikut di dalam sel buku catatan.

renv::install("eddelbuettel/digest")

Untuk menginstal paket dari Bioconductor, jalankan yang berikut di dalam sel buku catatan.

# (note: requires the BiocManager package)
renv::install("bioc::Biobase")

Perhatikan bahwa renv::install API menggunakan renv Cache.

Gunakan renv untuk menyimpan lingkungan buku catatan R Anda ke DBFS

Jalankan perintah berikut sekali sebelum menyimpan lingkungan.

renv::settings$snapshot.type("all")

Ini diatur renv untuk snapshot semua paket yang diinstal ke libPaths, bukan hanya yang saat ini digunakan di buku catatan. Lihat dokumentasi renv untuk informasi lebih lanjut.

Sekarang Anda dapat menjalankan bagian dalam sel buku catatan berikut untuk menyimpan keadaan lingkungan Anda saat ini.

renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)

Ini memperbarui lockfile dengan mengambil semua paket yang diinstal pada libPaths. Ini juga memindahkan lockfile dari sistem file lokal ke DBFS, tempatnya bertahan bahkan jika kluster Anda berakhir atau dihidupkan ulang.

Menginstal ulang lingkungan renv yang diberikan lockfile dari DBFS

Pertama, pastikan bahwa kluster baru Anda menjalankan versi Databricks Runtime yang identik dengan yang lingkungan yang pertama kali Anda buat di renv. Ini memastikan bahwa paket R yang sudah diinstal sebelumnya identik. Anda dapat menemukan daftar ini di setiap catatan rilis runtime. Setelah Anda Menginstal renv, jalankan yang berikut ini di dalam sel buku catatan.

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"))

Tindakan ini menyalin lockfile Anda dari DBFS ke dalam sistem berkas lokal, lalu memulihkan paket apa pun yang ditentukan dalam lockfile.

Catatan

Untuk menghindari kesalahan repositori yang hilang, kecualikan paket Rserve dan SparkR dari pemulihan paket. Kedua paket ini sudah diinstal sebelumnya di semua runtime.

renv Tembolok

Fitur renv yang sangat berguna adalah cache paket global-nya, yang dibagikan di semua proyek renv di kluster. Fitur ini mempercepat waktu penginstalan dan menghemat ruang {i>diskrenv tidak menyimpan paket yang diunduh melalui devtools API atau install.packages() dengan argumen tambahan apa pun selain pkgs.