Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di Fabric, Power BI e SQL. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
sparklyr è un'interfaccia R per Apache Spark. Fornisce un meccanismo per interagire con Spark usando interfacce R familiari. È possibile usare sparklyr tramite definizioni di processi batch Spark o con notebook interattivi di Microsoft Fabric.
sparklyr
viene usato insieme ad altri pacchetti tidyverse, come dplyr. Microsoft Fabric distribuisce la versione stabile più recente di sparklyr e tidyverse con ogni pubblicazione di runtime. È possibile importarli e iniziare a usare l'API.
Ottenere una sottoscrizione di Microsoft Fabric. In alternativa, iscriversi per ottenere una versione di valutazione di Microsoft Fabric gratuita.
Accedere a Microsoft Fabric.
Usare il selettore di esperienza in basso a sinistra nella home page per passare a Fabric.
Aprire o creare un notebook. Per scoprire come, consultare Come usare i notebook di Microsoft Fabric.
Impostare l'opzione del linguaggio su SparkR (R) per modificare il linguaggio principale.
Collegare il notebook a una lakehouse. Sul lato sinistro, selezionare Aggiungi per aggiungere un lakehouse esistente o per crearne uno nuovo.
Per stabilire una connessione spark_connect()
, usare il seguente metodo di connessione in sparklyr
. Supportiamo un nuovo metodo di connessione chiamato synapse
, che consente di connettersi a una sessione Spark esistente. Riduce notevolmente il tempo di avvio della sessione sparklyr
. Inoltre, abbiamo contribuito a questo metodo di connessione al progetto sparklyr open source. Con method = "synapse"
è possibile usare sia sparklyr
che SparkR
nella stessa sessione e condividere facilmente i dati tra di essi.
# connect sparklyr to your spark cluster
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", method = "synapse", config = config)
Una nuova sessione Spark non contiene dati. Il primo passaggio consiste nel caricare i dati nella memoria della sessione Spark o puntare Spark verso la posizione dei dati, in modo che possa accedervi su richiesta.
# load the sparklyr package
library(sparklyr)
# copy data from R environment to the Spark session's memory
mtcars_tbl <- copy_to(sc, mtcars, "spark_mtcars", overwrite = TRUE)
head(mtcars_tbl)
Usando sparklyr
, è anche possibile write
e read
dati da un file Lakehouse attraverso il percorso ABFS. Per leggere e scrivere in una Lakehouse, per prima cosa occorre aggiungerla alla sessione. Sul lato sinistro del notebook, selezionare Aggiungi per aggiungere una Lakehouse esistente o per crearne una nuova.
Per trovare il percorso ABFS, fare clic con il pulsante destro del mouse sulla cartella File nella Lakehouse, quindi selezionare Copia percorso ABFS. Incollare il percorso per sostituire abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
nel codice seguente:
temp_csv = "abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files/data/mtcars.csv"
# write the table to your lakehouse using the ABFS path
spark_write_csv(mtcars_tbl, temp_csv, header = TRUE, mode = 'overwrite')
# read the data as CSV from lakehouse using the ABFS path
mtcarsDF <- spark_read_csv(sc, temp_csv)
head(mtcarsDF)
sparklyr
fornisce più metodi per elaborare i dati all'interno di Spark usando:
dplyr
È possibile usare comandi familiari dplyr
per preparare i dati all'interno di Spark. I comandi vengono eseguiti all'interno di Spark, quindi non avvengono inutili trasferimenti di dati tra R e Spark.
Cliccare su Manipolazione dei dati con dplyr
per visualizzare la documentazione aggiuntiva sull'uso di dplyr con Spark.
# count cars by the number of cylinders the engine contains (cyl), order the results descendingly
library(dplyr)
cargroup <- group_by(mtcars_tbl, cyl) %>%
count() %>%
arrange(desc(n))
cargroup
sparklyr
e dplyr
convertono i comandi R in Spark SQL al posto nostro. Per visualizzare la query risultante, usare show_query()
:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
È anche possibile eseguire query SQL direttamente su tabelle all'interno di un cluster Spark. L'oggetto spark_connection()
implementa un'interfaccia DBI per Spark, consentendo di usare dbGetQuery()
per eseguire SQL e restituire il risultato come frame di dati R:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Entrambi i metodi precedenti si basano su istruzioni SQL. Spark offre comandi che semplificano la trasformazione dei dati e senza ricorrere a SQL.
Ad esempio, il comando ft_binarizer()
semplifica la creazione di una nuova colonna che indica se il valore di un'altra colonna supera una determinata soglia.
È possibile ottenere l'elenco completo dei Trasformatori di funzionalità Spark disponibili attraverso sparklyr
da Informazioni di riferimento - FT.
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Connettendo sparklyr
a un cluster spark synapse con method = "synapse"
, è possibile usare sia sparklyr
che SparkR
nella stessa sessione e condividere facilmente i dati tra di essi. È possibile creare una tabella Spark in sparklyr
e leggerla da SparkR
.
# load the sparklyr package
library(sparklyr)
# Create table in `sparklyr`
mtcars_sparklyr <- copy_to(sc, df = mtcars, name = "mtcars_tbl", overwrite = TRUE, repartition = 3L)
# Read table from `SparkR`
mtcars_sparklr <- SparkR::sql("select cyl, count(*) as n
from mtcars_tbl
GROUP BY cyl
ORDER BY n DESC")
head(mtcars_sparklr)
Ecco un esempio in cui usiamo ml_linear_regression()
per adattare un modello di regressione lineare. Usiamo il set di dati predefinito mtcars
e verifichiamo se è possibile stimare il consumo di carburante di un'automobile (mpg
) in base al peso (wt
) e al numero di cilindri del motore (cyl
). Presuppone in ogni caso che la relazione tra mpg
e ciascuna delle funzionalità sia lineare.
Dividere i dati: 70% per il training e 30% per il testing del modello. Giocando con questo rapporto si ottengono modelli diversi.
# split the dataframe into test and training dataframes
partitions <- mtcars_tbl %>%
select(mpg, wt, cyl) %>%
sdf_random_split(training = 0.7, test = 0.3, seed = 2023)
Eseguire il training di un modello di regressione logistica.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Usare ora summary()
per scoprire un po' di più sulla qualità del modello e sull'importanza statistica di ognuno dei predittori.
summary(fit)
È possibile applicare il modello al set di dati di test chiamando ml_predict()
.
pred <- ml_predict(fit, partitions$test)
head(pred)
Per un elenco dei modelli di Spark ML disponibili tramite sparklyr, visitare Informazioni di riferimento - ML
È possibile chiamare spark_disconnect()
o selezionare il pulsante Arresta sessione nella parte superiore della barra multifunzione del notebook per terminare la sessione Spark.
spark_disconnect(sc)
Altre informazioni sulle funzionalità R:
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di Fabric, Power BI e SQL. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stesso