Biblioteca R com escopo Notebook

As bibliotecas do R com escopo Notebookpermitem que você crie e modifique ambientes personalizados do R que são específicos para uma sessão Notebook . Quando você instala uma biblioteca com escopo do R Notebook , apenas o Notebook atual e qualquer Job associado a esse Notebook têm acesso a essa biblioteca. Outros Notebook conectados aos mesmos clusters não são afetados.

As bibliotecas com escopo Notebooknão persistem nas sessões. Você deve reinstalar as bibliotecas com escopo Notebookno início de cada sessão ou sempre que o Notebook for desconectado de um clusters.

A biblioteca com escopo Notebookestá automaticamente disponível em workers para SparkR UDFs.

Para instalar o biblioteca para todos os notebooks anexados a um cluster, use clusters-installed biblioteca. Ver clusters biblioteca.

Instalar bibliotecas com escopo Notebookem R

O senhor pode usar qualquer método conhecido de instalação do pacote no R, como install.pacote(), as APIs do devtools ou o Bioconductor.

O pacote R pode ser acessado pelos nós worker e também pelo nó do driver.

gerenciar bibliotecas com escopo Notebookem R

Instalar um pacote

require(devtools)

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

A Databricks recomenda o uso de um Snapshot CRAN como repositório para garantir resultados reproduzíveis.

devtools::install_github("klutometis/roxygen")

Remover um pacote R de um ambiente Notebook

Para remover uma biblioteca com escopo Notebook de um Notebook, use o comando remove.packages().

remove.packages("caesar")

Biblioteca R com escopo Notebookcom UDFs do Spark

Biblioteca R com escopoNotebooke SparkR

As bibliotecas com escopo Notebookestão disponíveis no worker SparkR; basta importar uma biblioteca para usá-la. Por exemplo, você pode executar o seguinte para gerar uma mensagem criptografada por Caesar com um 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)

Biblioteca R com escopoNotebooke sparklyr

Por default, em sparklyr::spark_apply(), o argumento packages é definido como TRUE. Isso copia as bibliotecas no libPaths atual para os workers, permitindo que você as importe e use nos workers. Por exemplo, você pode executar o seguinte para gerar uma mensagem criptografada por Caesar com 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)

Se você não deseja que as bibliotecas estejam disponíveis nos workers, defina packages como FALSE.

Isolamento de biblioteca e RStudio hospedado

O RStudio cria um caminho de biblioteca separado para cada usuário; portanto, os usuários estão isolados uns dos outros. No entanto, o caminho da biblioteca não está disponível nos workers. Se você quiser usar um pacote dentro dos trabalhadores do SparkR em um Job iniciado no RStudio, precisará instalá-lo usando bibliotecas clusters .

Como alternativa, se você usar UDFs sparklyr, os pacotes instalados dentro do RStudio estarão disponíveis para worker ao usar spark_apply(..., packages = TRUE).

Perguntas frequentes (FAQ)

Como faço para instalar um pacote apenas no driver para todos os R Notebook?

Defina explicitamente o diretório de instalação como /databricks/spark/R/lib. Por exemplo, com install.packages(), execução install.packages("pckg", lib="/databricks/spark/R/lib"). Os pacotes instalados em /databricks/spark/R/lib são compartilhados em todos Notebook nos clusters, mas não são acessíveis ao worker SparkR. Para compartilhar bibliotecas entre Notebook e também worker, use as bibliotecasclusters .

As bibliotecas com escopo Notebooksão armazenadas em cache?

Não há cache implementado para bibliotecas com escopo Notebookem clusters. Se você instalar um pacote em um Notebook e outro usuário instalar o mesmo pacote em outro Notebook nos mesmos clusters, o pacote será downloads, compilado e instalado novamente.