Share via


Usare R per Apache Spark con Azure Synapse Analytics (anteprima)

Azure Synapse Analytics offre il supporto R predefinito per Apache Spark. A questo scopo, i data scientist possono usare i notebook di Azure Synapse Analytics per scrivere ed eseguire il codice R. Ciò include anche il supporto per SparkR e SparklyR, che consente agli utenti di interagire con Spark usando interfacce Spark o R familiari.

Questo articolo illustra come usare R per Apache Spark con Azure Synapse Analytics.

Runtime R

Azure Synapse Analytics supporta un runtime R che include diversi pacchetti R open source diffusi, tra cui TidyVerse. Il runtime R è disponibile in tutti i pool di Apache Spark 3.

Per altre informazioni sulle librerie installate in ogni runtime, è possibile visitare la pagina seguente: - Runtime di Azure Synapse Analytics

Creare ed eseguire sessioni di notebook

Un notebook di Azure Synapse è un'interfaccia Web che consente di creare file che contengono codice in tempo reale, visualizzazioni e testo descrittivo. I notebook possono essere usati per convalidare idee ed eseguire esperimenti rapidi per ottenere informazioni cognitive dettagliate dai dati. I notebook sono anche ampiamente usati per la preparazione e la visualizzazione dei dati, l'apprendimento automatico e altri scenari di Big Data.

Per iniziare a usare R nei notebook di Synapse, è possibile modificare il linguaggio primario impostando l'opzione del linguaggio su SparkR (R).

Screenshot of the R language option.

Inoltre, è possibile usare più linguaggi in un notebook specificando il comando magic per il linguaggio all'inizio di una cella.

%%sparkr
# Enter your R code here

Per altre informazioni sui notebook all'interno di Azure Synapse Analytics, vedere la guida su come gestire i notebook.

Installare i pacchetti

Le librerie forniscono codice riutilizzabile che può essere utile includere nei programmi o nei progetti. Per rendere il codice di terze parti o compilato localmente disponibile per le applicazioni, è possibile installare una libreria in uno dei pool di Apache Spark serverless o in una sessione di notebook.

Gestire i pacchetti dell'area di lavoro R

In Synapse i pacchetti dell'area di lavoro possono essere file R tar.gz personalizzati o privati. È possibile caricare questi pacchetti nell'area di lavoro e assegnarli in un secondo momento a un pool di Apache Spark serverless specifico. Una volta assegnati, questi pacchetti dell'area di lavoro vengono installati automaticamente in tutte le sessioni del pool di Spark avviate nel pool corrispondente.

Per altre informazioni su come gestire le librerie delle aree di lavoro, vedere l'articolo seguente: - Gestire i pacchetti dell'area di lavoro

Gestire le sessioni R

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 nel pool di Apache Spark. Anziché aggiornare la configurazione del pool, è ora 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

Ad esempio, gli utenti possono installare una libreria R da CRAN e snapshot CRAN. Nell'esempio seguente Highcharter è un pacchetto diffuso per le visualizzazioni R. È possibile installare questo pacchetto in tutti i nodi all'interno del pool di Apache Spark usando il comando seguente:

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Per altre informazioni su come gestire le librerie R di sessione, vedere l'articolo seguente: Gestire i pacchetti di sessioni R

Utilità notebook

Microsoft Spark Utilities (MSSparkUtils) è un pacchetto predefinito che consente di eseguire facilmente attività comuni. È possibile usare MSSparkUtils per lavorare con i file system, per ottenere variabili di ambiente, per concatenare i notebook e per lavorare con i segreti. MSSparkUtils è supportato per i notebook R.

Per iniziare, è possibile eseguire i comandi seguenti:

library(notebookutils)
mssparkutils.fs.help()

Per altre informazioni sui comandi MSSparkUtils supportati, vedere l'articolo seguente: Usare utilità Di Microsoft Spark

Usare SparkR

SparkR è un pacchetto R che fornisce un front-end leggero per l'uso di Apache Spark da R. SparkR fornisce un'implementazione di frame di dati distribuita che supporta operazioni come selezione, filtro, aggregazione e così via. SparkR supporta anche l'apprendimento automatico distribuito con MLlib.

Creare un DataFrame SparkR da un data.frame R locale

Il modo più semplice per creare un DataFrame consiste nel convertire un data.frame R locale in un SparkDataFrame. In questo esempio viene usato as.DataFrame e passato il DataFrame R locale per creare sparkDataFrame.

df <- as.DataFrame(faithful)

# Displays the first part of the SparkDataFrame
head(df)
##  eruptions waiting
##1     3.600      79
##2     1.800      54

Creare un DataFrame SparkR usando l'API dell'origine dati Spark

SparkR supporta l'uso in varie origini dati tramite l'interfaccia SparkDataFrame. Il metodo generale per la creazione di un DataFrame da un'origine dati è read.df. Questo metodo accetta il percorso del file da caricare e il tipo di origine dati. SparkR supporta la lettura di file CSV, JSON, testo e Parquet in modo nativo.

# Read a csv from ADLSg2
df <- read.df('abfss://<container name>@<storage account name>.dfs.core.windows.net/avocado.csv', 'csv', header="true")
head(df)

Creare un DataFrame SparkR con Spark SQL

È anche possibile creare DataFrame SparkR usando query Spark SQL.

# Register this SparkDataFrame as a temporary view.
createOrReplaceTempView(df, "eruptions")

# SQL statements can be run by using the sql method
sql_df <- sql("SELECT * FROM eruptions")
head(sql_df)

Apprendimento automatico

SparkR espone la maggior parte degli algoritmi MLLib. SparkR usa MLlib per eseguire il training del modello. Per altre informazioni sugli algoritmi di Machine Learning supportati, vedere la documentazione per SparkR e MLlib.

# Create the DataFrame
cars <- cbind(model = rownames(mtcars), mtcars)
carsDF <- createDataFrame(cars)

# Fit a linear model over the dataset.
model <- spark.glm(carsDF, mpg ~ wt + cyl)

# Model coefficients are returned in a similar format to R's native glm().
summary(model)

Usare SparklyR

SparklyR è un'interfaccia R per Apache Spark. Fornisce un meccanismo per interagire con Spark usando interfacce R familiari.

Per stabilire una connessione sparklyr, è possibile usare il metodo di connessione seguente in spark_connect().

spark_version <- "<enter Spark version>"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config, method='synapse')

Passaggi successivi