Använda R för Apache Spark med Azure Synapse Analytics (förhandsversion)

Azure Synapse Analytics har inbyggt R-stöd för Apache Spark. Som en del av detta kan dataexperter använda Azure Synapse Analytics-notebook-filer för att skriva och köra sin R-kod. Detta inkluderar även stöd för SparkR och SparklyR, som gör att användare kan interagera med Spark med hjälp av välbekanta Spark- eller R-gränssnitt.

I den här artikeln får du lära dig hur du använder R för Apache Spark med Azure Synapse Analytics.

R Runtime

Azure Synapse Analytics stöder en R-körning som innehåller många populära R-paket med öppen källkod, inklusive TidyVerse. R-körningen är tillgänglig för alla Apache Spark 3-pooler.

Om du vill veta mer om biblioteken som är installerade på varje körning kan du gå till följande sida: – Azure Synapse Analytics Runtimes

Skapa och köra notebook-sessioner

En Azure Synapse-notebook-fil är ett webbgränssnitt där du kan skapa filer som innehåller livekod, visualiseringar och narrativ text. Notebook-filer är ett bra ställe att validera idéer och använda snabba experiment för att få insikter från dina data. Notebook-filer används också ofta i dataförberedelser, datavisualisering, maskininlärning och andra stordatascenarier.

För att komma igång med R i Synapse-notebook-filer kan du ändra det primära språket genom att ange språkalternativet till SparkR (R).

Screenshot of the R language option.

Dessutom kan du använda flera språk i en anteckningsbok genom att ange kommandot language magic i början av en cell.

%%sparkr
# Enter your R code here

Mer information om notebook-filer i Azure Synapse Analytics finns i guiden om hur du hanterar notebook-filer.

Installera paket

Bibliotek ger återanvändbar kod som du kanske vill inkludera i dina program eller projekt. Om du vill göra kod från tredje part eller lokalt byggd tillgänglig för dina program kan du installera ett bibliotek på en av dina serverlösa Apache Spark-pooler eller notebook-session.

Hantera R-arbetsytepaket

I Synapse kan arbetsytepaket vara anpassade eller privata R tar.gz-filer . Du kan ladda upp dessa paket till din arbetsyta och senare tilldela dem till en specifik serverlös Apache Spark-pool. När de har tilldelats installeras dessa arbetsytepaket automatiskt på alla Spark-poolsessioner som startas i motsvarande pool.

Mer information om hur du hanterar arbetsytebibliotek finns i följande artikel: – Hantera arbetsytepaket

Hantera R-sessioner

När du utför interaktiv dataanalys eller maskininlärning kan du prova nyare paket eller behöva paket som för närvarande inte är tillgängliga i Apache Spark-poolen. I stället för att uppdatera poolkonfigurationen kan användarna nu använda sessionsomfattande paket för att lägga till, hantera och uppdatera sessionsberoenden.

  • När du installerar bibliotek med sessionsomfattning har endast den aktuella notebook-filen åtkomst till de angivna biblioteken.
  • De här biblioteken påverkar inte andra sessioner eller jobb som använder samma Spark-pool.
  • De här biblioteken installeras ovanpå biblioteken på baskörnings- och poolnivå.
  • Notebook-bibliotek har högst prioritet.
  • Sessionsomfångade R-bibliotek bevaras inte mellan sessioner. Dessa bibliotek installeras i början av varje session när relaterade installationskommandon körs
  • R-bibliotek med sessionsomfattning installeras automatiskt över både drivrutins- och arbetsnoderna

Användare kan till exempel installera ett R-bibliotek från CRAN- och CRAN-ögonblicksbilder. I exemplet nedan är Highcharter ett populärt paket för R-visualiseringar. Jag kan installera det här paketet på alla noder i min Apache Spark-pool med hjälp av följande kommando:

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

Mer information om hur du hanterar sessions-R-bibliotek finns i följande artikel: hantera R-sessionspaket

Verktyg för notebook-filer

Microsoft Spark Utilities (MSSparkUtils) är ett inbyggt paket som hjälper dig att enkelt utföra vanliga uppgifter. Du kan använda MSSparkUtils för att arbeta med filsystem, hämta miljövariabler, länka ihop notebook-filer och arbeta med hemligheter. MSSparkUtils stöds för R-notebook-filer.

För att komma igång kan du köra följande kommandon:

library(notebookutils)
mssparkutils.fs.help()

Du kan läsa mer om mssparkUtils-kommandon som stöds genom att gå till följande artikel: Använda Microsoft Spark Utilities

Använda SparkR

SparkR är ett R-paket som tillhandahåller en lättviktsklientdel för användning av Apache Spark från R. SparkR tillhandahåller en distribuerad implementering av dataramar som stöder åtgärder som val, filtrering, aggregering osv. SparkR stöder även distribuerad maskininlärning med MLlib.

Skapa en SparkR-dataram från en lokal R-dataram

Det enklaste sättet att skapa en DataFrame är att konvertera en lokal R-data.frame till en SparkDataFrame. I det här exemplet använder as.DataFrame och skickar vi den lokala R-dataramen för att skapa SparkDataFrame.

df <- as.DataFrame(faithful)

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

Skapa en SparkR-dataram med spark-datakällans API

SparkR stöder drift på olika datakällor via SparkDataFrame-gränssnittet. Den allmänna metoden för att skapa en DataFrame från en datakälla är read.df. Den här metoden använder sökvägen för att filen ska läsas in och typen av datakälla. SparkR stöder läsning av CSV-, JSON-, text- och Parquet-filer internt.

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

Skapa en SparkR-dataram med Spark SQL

Du kan också skapa SparkR DataFrames med hjälp av Spark SQL-frågor.

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

Maskininlärning

SparkR exponerar de flesta MLLib-algoritmer. Under huven använder SparkR MLlib för att träna modellen. Mer information om vilka maskininlärningsalgoritmer som stöds finns i dokumentationen för SparkR och 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)

Använda SparklyR

SparklyR är ett R-gränssnitt till Apache Spark. Det ger en mekanism för att interagera med Spark med hjälp av välbekanta R-gränssnitt.

Om du vill upprätta en sparklyr anslutning kan du använda följande anslutningsmetod i 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')

Nästa steg