Notebook-scoped R biblioteca
Notebook-A biblioteca R com escopo permite que o senhor crie e modifique ambientes R personalizados que são específicos para uma sessão do Notebook. Quando o senhor instala uma biblioteca com escopo de Notebook do R, somente o Notebook atual e qualquer trabalho associado a esse Notebook têm acesso a essa biblioteca. Outros notebooks anexados ao mesmo clustering não são afetados.
As bibliotecas com escopo para notebooks não persistem entre as sessões. O senhor deve reinstalar as bibliotecas com escopo para notebooks no início de cada sessão ou sempre que o notebook for desconectado de um cluster.
Notebook-scoped biblioteca biblioteca estão automaticamente disponíveis no worker para SparkR UDFs.
Para instalar o biblioteca para todos os Notebooks anexados a um cluster, use o biblioteca instalado no cluster. Ver biblioteca de agrupamento.
Instalar a biblioteca com escopo de Notebook no R
O senhor pode usar qualquer método conhecido para instalar o pacote no R, como install.pacote(), o devtools APIs, ou o Bioconductor.
O pacote R pode ser acessado pelos nós worker e também pelo nó do driver.
gerenciar biblioteca com escopo de Notebook em R
Nesta secção:
Instalar um pacote
require(devtools)
install_version(
package = "caesar",
repos = "http://cran.us.r-project.org"
)
Databricks recomenda usar um CRAN Snapshot 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")
NotebookBiblioteca R com escopo e Spark UDFs
Nesta secção:
- Notebook-scoped R biblioteca e SparkR
- Notebook-scoped R biblioteca e Sparklyr
- Isolamento da biblioteca e RStudio hospedado
Notebook-scoped R biblioteca e SparkR
NotebookAs bibliotecas com escopo estão disponíveis no site SparkR worker; basta importar uma biblioteca para usá-la. Por exemplo, o senhor pode executar o seguinte para gerar uma mensagem criptografada por César 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)
Notebook-scoped R biblioteca e Sparklyr
Por default, em sparklyr::spark_apply()
, o argumento packages
é definido como TRUE
. Isso copia a biblioteca no site libPaths
atual para o trabalhador, permitindo que o senhor a importe e use no trabalhador. Por exemplo, o senhor pode executar o seguinte para gerar uma mensagem criptografada por César 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 o senhor não quiser que a biblioteca esteja disponível no trabalhador, defina packages
como FALSE
.
Isolamento da biblioteca e RStudio hospedado
O RStudio cria um caminho de biblioteca separado para cada usuário; portanto, os usuários ficam isolados uns dos outros. No entanto, o caminho da biblioteca não está disponível no trabalhador. Se o senhor quiser usar um pacote dentro do SparkR worker em um trabalho iniciado a partir do RStudio, precisará instalá-lo usando a biblioteca de clustering.
Como alternativa, se o senhor usar Sparklyr UDFs, o pacote instalado em RStudio estará disponível para o worker ao usar spark_apply(..., packages = TRUE)
.
Perguntas frequentes (FAQ)
Como faço para instalar um pacote apenas com o driver para todos os notebooks R?
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")
.
O pacote instalado em /databricks/spark/R/lib
é compartilhado em todos os notebooks do cluster, mas não pode ser acessado pelo funcionário SparkR. Para compartilhar a biblioteca no Notebook e também no worker, use o clustering biblioteca.
As bibliotecas com escopo de Notebook são armazenadas em cache?
Não há cache implementado para biblioteca com escopo de Notebook em um agrupamento. Se o senhor instalar um pacote em um Notebook e outro usuário instalar o mesmo pacote em outro Notebook no mesmo clustering, o pacote será baixado, compilado e instalado novamente.