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")

Remove un pacchetto R da un ambiente notebook

Per remove una libreria con ambito limitato a un notebook, utilizzare il comando remove.packages().

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 il seguente comando per generate un messaggio cifrato con il cifrario di Cesare utilizzando una UDF 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 è set per 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 generate un messaggio cifrato di Cesare 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, setpackages a 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?

set in modo esplicito la directory di installazione per /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.