Freigeben über


Verwenden von R für Apache Spark mit Azure Synapse Analytics (Vorschau)

Azure Synapse Analytics bietet integrierte R-Unterstützung für Apache Spark. In diesem Zusammenhang können Data Scientists Azure Synapse Analytics-Notebooks zum Schreiben und Ausführen ihres R-Codes verwenden. Dies umfasst auch Unterstützung für SparkR und SparklyR, was Benutzern die Interaktion mit Spark mithilfe vertrauter Spark- oder R-Schnittstellen ermöglicht.

In diesem Artikel erfahren Sie, wie Sie R für Apache Spark mit Azure Synapse Analytics verwenden.

R-Runtime

Azure Synapse Analytics unterstützt eine R-Runtime, die zahlreiche beliebte Open-Source-R-Pakete enthält, u. a. TidyVerse. Die R-Runtime ist für alle Apache Spark 3-Pools verfügbar.

Weitere Informationen zu den in jeder Runtime installierten Bibliotheken finden Sie auf der folgenden Seite: Azure Synapse-Runtimes.

Erstellen und Ausführen von Notebooksitzungen

Ein Azure Synapse-Notebook ist eine Weboberfläche zum Erstellen von Dateien, die Livecode, Visualisierungen und beschreibenden Text enthalten. Notebooks sind ein guter Ausgangspunkt, um Ideen zu überprüfen und schnelle Experimente zu verwenden, um Erkenntnisse aus Ihren Daten zu gewinnen. Notebooks werden auch häufig für Datenvorbereitung, Datenvisualisierung, Machine Learning und andere Big Data-Szenarien verwendet.

Für die ersten Schritte mit R in Synapse-Notebooks können Sie die primäre Sprache ändern, indem Sie die Option Sprache auf SparkR (R) festlegen.

Screenshot: Option für die Sprache R

Sie können darüber hinaus in einem Notebook mehrere Sprachen verwenden, indem Sie den Magic-Befehl für die Sprache am Anfang einer Zelle angeben.

%%sparkr
# Enter your R code here

Weitere Informationen zu Notebooks in Azure Synapse Analytics finden Sie im Leitfaden zum Verwalten von Notebooks.

Installieren von Paketen

Bibliotheken stellen wiederverwendbaren Code bereit, den Sie in Ihre Programme oder Projekte einbinden können. Wenn Sie Code eines Drittanbieters oder lokal erstellten Code für Ihre Anwendungen verfügbar machen möchten, können Sie eine Bibliothek in einem Ihrer serverlosen Apache Spark-Pools oder in einer Notebook-Sitzung installieren.

Verwalten von R-Arbeitsbereichspaketen

In Synapse können Arbeitsbereichspakete öffentliche oder private <R_Package>.tar.gz-Dateien sein. Alle Abhängigkeiten müssen ebenfalls installiert werden. Sie können diese Pakete in Ihren Arbeitsbereich hochladen und später einem bestimmten serverlosen Apache Spark-Pool zuweisen. Nach Zuweisung werden diese Arbeitsbereichspakete automatisch in allen Spark-Poolsitzungen installiert, die im entsprechenden Pool gestartet wurden.

Weitere Informationen zum Verwalten von Arbeitsbereichsbibliotheken finden Sie im folgenden Artikel: Arbeitsbereichspakete.

Verwalten von R-Sitzungen

Bei interaktiver Datenanalyse oder maschinellem Lernen probieren Sie ggf. neuere Pakete aus, oder Sie benötigen Pakete, die derzeit nicht in Ihrem Apache Spark-Pool verfügbar sind. Anstatt die Poolkonfiguration zu aktualisieren, können Benutzer jetzt sitzungsbezogene Pakete verwenden, um Sitzungsabhängigkeiten hinzuzufügen, zu verwalten und zu aktualisieren.

  • Wenn Sie sitzungsbezogene Bibliotheken installieren, kann nur das aktuelle Notebook auf die angegebenen Bibliotheken zugreifen.
  • Diese Bibliotheken haben keine Auswirkungen auf andere Sitzungen oder Aufträge, die denselben Spark-Pool verwenden.
  • Diese Bibliotheken werden auf Basis der zugrunde liegenden Bibliotheken auf Runtime- und Poolebene installiert.
  • Notebookbibliotheken besitzen die höchste Priorität.
  • Sitzungsbezogene R-Bibliotheken werden nicht sitzungsübergreifend beibehalten. Diese Bibliotheken werden am Anfang jeder Sitzung installiert, wenn die zugehörigen Installationsbefehle ausgeführt werden.
  • R-Bibliotheken im Sitzungsbereich werden automatisch auf den Treiber- und Workerknoten installiert.

Benutzer können beispielsweise eine R-Bibliothek aus CRAN und CRAN-Momentaufnahmen installieren. Im folgenden Beispiel wird Highcharter verwendet, ein beliebtes Paket für R-Visualisierungen. Ich kann dieses Paket auf allen Knoten in meinem Apache Spark-Pool mithilfe des folgenden Befehls installieren:

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

Weitere Informationen zum Verwalten von R-Sitzungsbibliotheken finden Sie im folgenden Artikel: Verwalten von sitzungsbezogenen Paketen.

Notebook Utilities

Microsoft Spark Utilities (MSSparkUtils) ist ein integriertes Paket, mit dem sich gängige Aufgaben leichter erledigen lassen. Sie können MSSparkUtils verwenden, um mit Dateisystemen zu arbeiten, Umgebungsvariablen zu erhalten, Notebooks miteinander zu verketten und mit Geheimnissen zu arbeiten. MSSparkUtils wird für R-Notebooks unterstützt.

Für die ersten Schritte können Sie die folgenden Befehle ausführen:

library(notebookutils)
mssparkutils.fs.help()

Weitere Informationen zu den unterstützten MSSparkUtils-Befehlen finden Sie im folgenden Artikel: Einführung in Microsoft Spark-Hilfsprogramme.

Verwenden von SparkR

SparkR ist ein R-Paket, das ein schlankes Front-End für die Nutzung von Apache Spark in R bereitstellt. SparkR ermöglicht eine verteilte Datenrahmenimplementierung, die Vorgänge wie Auswählen, Filtern, Aggregieren usw. unterstützt. SparkR unterstützt außerdem verteiltes maschinelles Lernen mithilfe von MLlib.

Erstellen eines SparkR-Datenrahmens aus einem lokalen R-Datenrahmen (data.frame)

Die einfachste Möglichkeit zum Erstellen eines Datenrahmens besteht in der Konvertierung eines lokalen R-Datenrahmens (data.frame) in SparkDataFrame. In diesem Beispiel verwenden Sie as.DataFrame und übergeben den lokalen R-Datenrahmen, um SparkDataFrame zu erstellen.

df <- as.DataFrame(faithful)

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

Erstellen eines SparkR-Datenrahmens mithilfe der Spark-Datenquellen-API

SparkR unterstützt über die SparkDataFrame-Schnittstelle das Arbeiten mit verschiedenen Datenquellen. Die allgemeine Methode zum Erstellen eines DataFrames aus einer Datenquelle ist read.df. Diese Methode verwendet den Pfad der zu ladenden Datei und den Typ der Datenquelle. SparkR unterstützt nativ das Lesen von CSV-, JSON-, Text- und Parquet-Dateien.

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

Erstellen eines SparkR-Datenrahmens mithilfe von Spark SQL

Sie können SparkR-DataFrames auch mithilfe von Spark-SQL-Abfragen erstellen.

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

Machine Learning

SparkR macht die meisten MLLib-Algorithmen verfügbar. Im Hintergrund verwendet SparkR die MLlib, um das Modell zu trainieren. Weitere Informationen dazu, welche Algorithmen für maschinelles Lernen unterstützt werden, finden Sie in der Dokumentation für SparkR und 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)

Verwenden von SparklyR

SparklyR ist eine R-Schnittstelle für Apache Spark. Sie stellt einen Mechanismus für die Interaktion mit Spark mithilfe vertrauter R-Schnittstellen bereit.

Um eine sparklyr-Verbindung herzustellen, können Sie die folgende Verbindungsmethode in spark_connect() verwenden:

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ächste Schritte