Gestione libreria R
Le librerie forniscono codice riutilizzabile che può essere utile includere nei programmi o nei progetti per Microsoft Fabric Spark.
Microsoft Fabric supporta un runtime R con molti dei pacchetti R open source più diffusi, tra cui TidyVerse, preinstallati. All'avvio di un'istanza di Spark, queste librerie vengono incluse automaticamente e rese disponibili per essere usate immediatamente nei notebook o nelle definizioni dei processi Spark.
Potrebbe essere necessario aggiornare le librerie R per vari motivi. Ad esempio se una delle dipendenze principali ha rilasciato una nuova versione o se il team ha creato un pacchetto personalizzato necessario nei cluster Spark.
È possibile includere due tipi di librerie in base allo scenario:
Le librerie di feed fanno riferimento a quelle che risiedono in origini o repository pubblici, ad esempio CRAN o GitHub.
Le librerie personalizzate sono il codice creato dall'utente o dall'organizzazione, .tar.gz può essere gestito tramite i portali di gestione delle librerie.
In Microsoft Fabric sono installati due livelli di pacchetti:
Ambiente: gestire le librerie tramite un ambiente per riutilizzare lo stesso set di librerie in più notebook o processi.
Sessione: un'installazione a livello di sessione crea un ambiente per una sessione di notebook specifica. La modifica delle librerie a livello di sessione non viene mantenuta tra le sessioni.
Riepilogo dei comportamenti correnti di gestione delle librerie R disponibili:
Tipo di libreria | Installazione dell'ambiente | Installazione a livello di sessione |
---|---|---|
Feed R (CRAN) | Non supportato | Supportato |
Personalizzazione R | Supportato | Supportato |
Prerequisiti
Ottenere una sottoscrizione di Microsoft Fabric. In alternativa, iscriversi per ottenere una versione di valutazione di Microsoft Fabric gratuita.
Accedere a Microsoft Fabric.
Usa l'interruttore esperienza nell'angolo in basso a sinistra della tua home page per passare a Fabric.
Librerie R a livello di sessione
Quando si esegue l'analisi interattiva dei dati o l'apprendimento automatico, è possibile provare pacchetti più recenti oppure potrebbero essere necessari pacchetti attualmente non disponibili nell'area di lavoro. Anziché aggiornare la configurazione dell'area di lavoro, è possibile usare pacchetti con ambito sessione per aggiungere, gestire e aggiornare le dipendenze della sessione.
- Quando si installano librerie con ambito sessione, solo il notebook corrente ha accesso alle librerie specificate.
- Queste librerie non hanno alcun impatto su altre sessioni o processi che usano lo stesso pool di Spark.
- Queste librerie vengono installate sopra il runtime di base e le librerie a livello di pool.
- Le librerie di notebook hanno la precedenza più alta.
- Le librerie R con ambito sessione non vengono mantenute tra le sessioni. Queste librerie vengono installate all'inizio di ogni sessione quando vengono eseguiti i comandi di installazione correlati.
- Le librerie R con ambito sessione vengono installate automaticamente nei nodi driver e di lavoro.
Nota
Questi comandi di gestione delle librerie R vengono disabilitati durante l'esecuzione di processi della pipeline. Se si desidera installare un pacchetto all'interno di una pipeline, è necessario sfruttare le funzionalità di gestione della libreria a livello di area di lavoro.
Installare pacchetti R da CRAN
È possibile installare facilmente una libreria R da CRAN.
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
È anche possibile usare snapshot CRAN come repository per assicurarsi di scaricare ogni volta la stessa versione del pacchetto.
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
Installare pacchetti R usando devtools
La libreria devtools
semplifica lo sviluppo di pacchetti per accelerare le attività comuni. Questa libreria viene installata all'interno del runtime predefinito di Microsoft Fabric.
È possibile usare devtools
per specificare una versione specifica di una libreria da installare. Queste librerie verngono installate in tutti i nodi all'interno del cluster.
# Install a specific version.
install_version("caesar", version = "1.0.0")
Analogamente, è possibile installare una libreria direttamente da GitHub.
# Install a GitHub library.
install_github("jtilly/matchingR")
Attualmente, all'interno di Microsoft Fabric sono supportate le seguenti funzioni devtools
:
Comando | Descrizione |
---|---|
install_github() | Installa un pacchetto R da GitHub |
install_gitlab() | Installa un pacchetto R da GitLab |
install_bitbucket() | Installa un pacchetto R da BitBucket |
install_url() | Installa un pacchetto R da un URL arbitrario |
install_git() | Installa da un repository Git arbitrario |
install_local() | Installa da un file locale su disco |
install_version() | Installa da una versione specifica in CRAN |
Installare librerie personalizzate R
Per usare una libreria personalizzata a livello di sessione, è prima necessario caricarla in un lakehouse collegato.
Aprire il notebook in cui si vuole usare la libreria personalizzata.
Sul lato sinistro, selezionare Aggiungi per aggiungere una lakehouse esistente o crearne uno nuovo.
Fare clic con il pulsante destro del mouse o selezionare "..." accanto a File per caricare il file .tar.gz.
Dopo il caricamento, tornare al notebook. Usare il comando seguente per installare la libreria personalizzata nella sessione:
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
Visualizzare le librerie installate
È possibile eseguire query su tutte le librerie installate all'interno della sessione usando il comando library
.
# query all the libraries installed in current session
library()
È possibile usare la funzione packageVersion
per controllare la versione della libreria:
# check the package version
packageVersion("caesar")
Rimuovere un pacchetto R da una sessione
È possibile usare la funzione detach
per rimuovere una libreria dallo spazio dei nomi. Queste librerie rimangono su disco finché non vengono ricaricate.
# detach a library
detach("package: caesar")
Per rimuovere un pacchetto con ambito sessione da un notebook, usare il comando remove.packages()
. Questa modifica della libreria non ha alcun impatto su altre sessioni nello stesso cluster. Gli utenti non possono disinstallare o rimuovere librerie integrate del runtime predefinito di Microsoft Fabric.
Nota
Non è possibile rimuovere pacchetti di base come SparkR, SparklyR o R.
remove.packages("caesar")
Librerie R con ambito sessione e SparkR
Le librerie con ambito notebook sono disponibili nei ruoli di lavoro SparkR.
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
Librerie R con ambito sessione e sparklyr
Con spark_apply()
in sparklyr, è possibile usare qualsiasi pacchetto R all'interno di Spark. Per impostazione predefinita, in sparklyr::spark_apply()
l'argomento packages è impostato su FALSE. Questa operazione copia le librerie nei percorsi libPath correnti 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()
:
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
Contenuto correlato
Altre informazioni sulle funzionalità R: