Pustaka R khusus notebook

Pustaka R yang berlaku untuk setiap buku catatan memungkinkan Anda membuat dan memodifikasi lingkungan R kustom yang ditujukan khusus untuk sesi buku catatan. Ketika Anda memasang pustaka yang khusus untuk buku catatan R, hanya buku catatan saat ini dan pekerjaan apa pun yang terkait dengan buku catatan tersebut yang dapat mengakses pustaka itu. Buku catatan lain yang dilampirkan ke kluster yang sama tidak terpengaruh.

Pustaka dengan jangkauan notebook tidak bertahan antar sesi. Anda harus memasang ulang pustaka cakupan buku catatan di awal setiap sesi, atau setiap kali buku catatan terlepas dari kluster.

Pustaka cakupan buku catatan tersedia secara otomatis pada pekerja untuk SparkR UDFs.

Untuk menginstal pustaka untuk semua buku catatan yang terhubung dengan kluster, gunakan pustaka yang diinstal pada kluster. Lihat Pustaka cakupan komputasi.

Memasang pustaka yang terikat pada notebook di R

Anda dapat menggunakan metode penginstalan paket yang sudah dikenal di R, seperti install.packages(), devtools API, atau Bioconductor.

Paket R dapat diakses oleh simpul pekerja serta simpul driver.

Mengelola pustaka cakupan buku catatan dalam R

Di bagian ini:

Menginstal paket

require(devtools)

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

Databricks merekomendasikan untuk menggunakan snapshot CRAN sebagai repositori untuk menjamin hasil yang dapat direproduksi.

devtools::install_github("klutometis/roxygen")

Menghapus paket R dari lingkungan buku catatan

Untuk menghapus pustaka yang terikat pada buku catatan, gunakan perintah remove.packages().

remove.packages("caesar")

Perpustakaan R khusus notebook dengan Spark UDFs

Di bagian ini:

Perpustakaan R dan SparkR dengan cakupan notebook

Pustaka yang berfokus pada buku catatan tersedia di pekerja SparkR; cukup impor pustaka untuk menggunakannya. Misalnya, Anda dapat menjalankan hal berikut untuk menghasilkan pesan terenkripsi caesar dengan SparkR UDF:

require(devtools)

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

library(SparkR)
sparkR.session()

hello <- function(x) {
  library(caesar)
  caesar("hello world")
}

spark.lapply(c(1, 2), hello)

Pustaka R dan sparklyr khusus buku catatan

Secara default, dalam sparklyr::spark_apply(), argumen packages diatur ke TRUE. Ini menyalin perpustakaan dalam arus libPaths ke pekerja, memungkinkan Anda untuk mengimpor dan menggunakannya pada pekerja. Misalnya, Anda dapat menjalankan hal berikut untuk menghasilkan pesan terenkripsi caesar dengan sparklyr::spark_apply():

require(devtools)

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

library(sparklyr)
sc <- spark_connect(method = 'databricks')

apply_caes <- function(x) {
  library(caesar)
  caesar("hello world")
}

sdf_len(sc, 5) %>%
  spark_apply(apply_caes)

Jika Anda tidak ingin pustaka tersedia untuk pekerja, atur packages ke FALSE.

Isolasi perpustakaan dan host RStudio

RStudio membuat jalur pustaka terpisah untuk setiap pengguna; oleh karena itu pengguna terisolasi satu sama lain. Namun, jalur perpustakaan tidak tersedia untuk pekerja. Jika Anda ingin menggunakan paket di dalam pekerja SparkR dalam pekerjaan yang diluncurkan dari RStudio, Anda perlu menginstalnya menggunakan pustaka kluster.

Atau, jika Anda menggunakan sparklyr UDFs, paket yang dipasang di RStudio tersedia untuk pekerja saat menggunakan spark_apply(..., packages = TRUE).

Pertanyaan Umum (FAQ)

Bagaimana cara memasang paket hanya di driver untuk semua notebook R?

Secara eksplisit mengatur direktori penginstalan ke /databricks/spark/R/lib. Misalnya, dengan install.packages(), jalankan install.packages("pckg", lib="/databricks/spark/R/lib"). Paket yang dipasang di /databricks/spark/R/lib dibagikan ke semua buku catatan di kluster, tetapi tidak dapat diakses oleh pekerja yang menggunakan SparkR. Untuk berbagi pustaka di seluruh buku catatan dan juga pekerja, gunakan pustaka kluster.

Apakah pustaka yang lingkupnya terbatas pada notebook di-cache?

Tidak ada caching yang diterapkan untuk library ruang lingkup notebook pada kluster. Jika Anda memasang paket di buku catatan, dan pengguna lain memasang paket yang sama di buku catatan lain pada kluster yang sama, paket diunduh, dikompilasi, dan dipasang lagi.