Aracılığıyla paylaş


Defter kapsamında R kütüphaneleri

Not defteri kapsamlı R kitaplıkları, bir not defteri oturumuna özgü özel R ortamları oluşturmanıza ve değiştirmenize olanak tanır. R not defteri kapsamlı bir kitaplık yüklediğinizde, yalnızca geçerli not defteri ve bu not defteriyle ilişkili tüm işler bu kitaplığa erişebilir. Aynı kümeye eklenen diğer not defterleri etkilenmez.

Not defteri kapsamlı kitaplıklar oturumlar arasında kalıcı olmaz. Her oturumun başında veya not defteri bir kümeden ayrıldığında, not defterine özgü kitaplıkları yeniden yüklemeniz gerekir.

Not defteri kapsamlı kitaplık kitaplıkları SparkR UDF'leri için çalışanlarda otomatik olarak kullanılabilir.

Bir kümeye bağlı tüm not defterlerinin kitaplıklarını yüklemek için küme yüklü kitaplıkları kullanın. Bkz. Küme kitaplıkları.

R'de not defteri kapsamlı kitaplıkları yükleme

R'de paketleri yüklemek için install.packages(), geliştirici araçları API'leri veya Bioconductor gibi tanıdık herhangi bir yöntemi kullanabilirsiniz.

R paketlerine hem çalışan düğümleri hem de sürücü düğümü erişebilir.

R'de not defteri kapsamındaki kitaplıkları yönetme

Bu bölümde:

Paketi yükleme

require(devtools)

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

Databricks, yeniden üretilebilir sonuçları garanti etmek için bir CRAN anlık görüntüsünün depo olarak kullanılmasını önerir.

devtools::install_github("klutometis/roxygen")

Not defteri ortamından R paketini kaldırma

Bir not defterinden, not defteriyle ilişkili bir kitaplığı kaldırmak için remove.packages() komutunu kullanın.

remove.packages("caesar")

Spark UDF'leri ile not defteri düzeyinde R kitaplıkları

Bu bölümde:

Not defteri kapsamlı R kitaplıkları ve SparkR

Deftere özgü kitaplıklar SparkR çalışanlarında kullanılabilir; yalnızca kullanmak üzere kitaplığı ithal etmen yeterli. Örneğin, SparkR UDF ile sezar ile şifrelenmiş bir ileti oluşturmak için aşağıdakileri çalıştırabilirsiniz:

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)

Notebook'a özgü R kütüphaneleri ve sparklyr

Varsayılan olarak, içinde sparklyr::spark_apply(), packages bağımsız değişkeni TRUE olarak ayarlanır. Bu, geçerli libPaths kitaplıkları işçilere kopyalayarak bunları aktarmanıza ve işçilerde kullanmanıza olanak sağlar. Örneğin, sparklyr::spark_apply() kullanarak sezar şifreli bir ileti oluşturmak için aşağıdakileri çalıştırabilirsiniz:

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)

Çalışanlarda kütüphanelerin kullanılabilir olmasını istemiyorsanız, packages öğesini FALSE olarak ayarlayın.

Kütüphane yalıtımı ve barındırılan RStudio

RStudio her kullanıcı için ayrı bir kitaplık yolu oluşturur; bu nedenle kullanıcılar birbirinden yalıtılır. Ancak, kitaplık yolu çalışanlarda kullanılamaz. RStudio'dan başlatılan bir işte SparkR çalışanlarının içinde bir paket kullanmak istiyorsanız, küme kitaplıklarını kullanarak yüklemeniz gerekir.

Alternatif olarak, sparklyr UDF'lerini kullanırsanız, RStudio'da yüklü olan paketler spark_apply(..., packages = TRUE) kullanıldığında çalışanların erişimine açılır.

Sık sorulan sorular (SSS)

Tüm R not defterleri için yalnızca sürücüye bir paketi nasıl yüklerim?

Yükleme dizinini açıkça olarak olarak /databricks/spark/R/libayarlayın. Örneğin, install.packages() ile install.packages("pckg", lib="/databricks/spark/R/lib") çalıştırın. içinde /databricks/spark/R/lib yüklü paketler kümedeki tüm not defterleri arasında paylaşılır, ancak SparkR çalışanları tarafından erişilemez. Kitaplıkları not defterleri ve çalışanlar arasında paylaşmak için küme kitaplıklarını kullanın.

Not defteri kapsamlı kitaplıklar önbelleğe alınmış mı?

Bir kümede, not defterine özgü kitaplıklar için önbelleğe alma sistemi yoktur. Bir not defterine paket yüklerseniz ve başka bir kullanıcı aynı paketi aynı kümedeki başka bir not defterine yüklerse paket indirilir, derlenip yeniden yüklenir.