Condividi tramite


Librerie R con ambito notebook

Le librerie R con ambito notebook consentono di creare e modificare ambienti R personalizzati specifici di una sessione di notebook. Quando si installa una libreria con ambito notebook R, solo il notebook corrente e tutti i processi associati a tale notebook hanno accesso a tale libreria. L'operazione non incide sugli altri notebook collegati allo stesso cluster.

Le librerie con ambito notebook non vengono mantenute tra le sessioni. È necessario reinstallare le librerie con ambito notebook all'inizio di ogni sessione o ogni volta che il notebook viene scollegato da un cluster.

Le librerie con ambito notebook sono automaticamente disponibili nei ruoli di lavoro per le funzioni definite dall'utente SparkR.

Per installare librerie per tutti i notebook collegati a un cluster, usare le librerie installate dal cluster. Vedere Librerie cluster.

Installare librerie con ambito notebook in R

È possibile usare qualsiasi metodo familiare per installare pacchetti in R, ad esempio install.packages(), le API devtools o Bioconductor.

I pacchetti R sono accessibili ai nodi di lavoro e al nodo driver.

Gestire le librerie con ambito notebook in R

Contenuto della sezione:

Installare un pacchetto

require(devtools)

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

Databricks consiglia di usare uno snapshot CRAN come repository per garantire risultati riproducibili.

devtools::install_github("klutometis/roxygen")

Rimuovere un pacchetto R da un ambiente notebook

Per rimuovere una libreria con ambito notebook da un notebook, usare il remove.packages() comando .

remove.packages("caesar")

Librerie R con ambito notebook con funzioni definite dall'utente Spark

Contenuto della sezione:

Librerie R con ambito notebook e SparkR

Le librerie con ambito notebook sono disponibili nei ruoli di lavoro SparkR; è sufficiente importare una libreria per usarla. Ad esempio, è possibile eseguire quanto segue per generare un messaggio con crittografia cesare con una funzione definita dall'utente SparkR:

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)

Librerie R con ambito notebook e sparklyr

Per impostazione predefinita, in sparklyr::spark_apply()l'argomento packages è impostato su TRUE. Questa copia le librerie nell'oggetto corrente libPaths ai ruoli di lavoro, consentendo di importarle e usarle nei ruoli di lavoro. Ad esempio, è possibile eseguire quanto segue per generare un messaggio con crittografia caesar con 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 non si desidera che le librerie siano disponibili nei ruoli di lavoro, impostare su packages FALSE.

Isolamento della libreria e RStudio ospitato

RStudio crea un percorso di libreria separato per ogni utente; pertanto gli utenti sono isolati l'uno dall'altro. Tuttavia, il percorso della libreria non è disponibile nei ruoli di lavoro. Se si vuole usare un pacchetto all'interno dei ruoli di lavoro SparkR in un processo avviato da RStudio, è necessario installarlo usando le librerie cluster.

In alternativa, se si usano funzioni definite dall'utente sparklyr, i pacchetti installati in RStudio sono disponibili per i ruoli di lavoro quando si usa spark_apply(..., packages = TRUE).

Domande frequenti

Ricerca per categorie installare un pacchetto solo nel driver per tutti i notebook R?

Impostare in modo esplicito la directory di installazione su /databricks/spark/R/lib. Ad esempio, con install.packages(), eseguire install.packages("pckg", lib="/databricks/spark/R/lib"). I pacchetti installati in vengono condivisi in /databricks/spark/R/lib tutti i notebook nel cluster, ma non sono accessibili ai ruoli di lavoro SparkR. Per condividere librerie tra notebook e ruoli di lavoro, usare le librerie cluster.

Le librerie con ambito notebook vengono memorizzate nella cache?

Non è implementata alcuna memorizzazione nella cache per le librerie con ambito notebook in un cluster. Se si installa un pacchetto in un notebook e un altro utente installa lo stesso pacchetto in un altro notebook nello stesso cluster, il pacchetto viene scaricato, compilato e installato di nuovo.