Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die R-Sprach-Sparklyr-Ressource dient als Schnittstelle zu Apache Spark. Die Sparklr-Ressource bietet einen Mechanismus für die Interaktion mit Spark mit vertrauten R-Schnittstellen. Verwenden Sie Sparklyr über Spark-Batch-Auftragsdefinitionen oder mit interaktiven Microsoft Fabric-Notizbüchern.
sparklyr wird mit anderen tidyverse-Paketen verwendet, z. B. dplyr. Microsoft Fabric verteilt die neueste stabile Version von sparklyr und tidyverse mit jeder Laufzeitversion. Sie können diese Ressourcen importieren und mit der Verwendung der API beginnen.
Voraussetzungen
Erhalten Sie ein Microsoft Fabric-Abonnement. Oder registrieren Sie sich für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabrican.
Wechseln Sie zu Fabric, indem Sie den Benutzeroberflächenschalter auf der unteren linken Seite Ihrer Startseite verwenden.
Öffnen oder Erstellen eines Notizbuchs Informationen dazu finden Sie unter Verwenden von Microsoft Fabric-Notizbüchern.
Legen Sie die Sprachoption auf SparkR (R)- fest, um die primäre Sprache zu ändern.
Fügen Sie Ihr Notizbuch an ein Seehaus an. Wählen Sie auf der linken Seite Hinzufügen aus, um ein vorhandenes Seehaus hinzuzufügen oder ein Seehaus zu erstellen.
Verbinden von Sparklyr mit Synapse Spark-Cluster
Die spark_connect() Funktionsverbindungsmethode stellt eine sparklyr Verbindung her. Die Funktion erstellt eine neue Verbindungsmethode namens synapse, die eine Verbindung mit einer vorhandenen Spark-Sitzung herstellt. Dadurch wird die Startzeit der sparklyr Sitzung erheblich reduziert. Diese Verbindungsmethode ist im Open Sourced Sparklyr-Projekt verfügbar. Mit method = "synapse" können Sie sowohl sparklyr als auch SparkR in derselben Sitzung verwenden und einfach Daten zwischen ihnen freigeben. Im folgenden Codebeispiel für Notebookzellen wird die Funktion spark_connect() verwendet:
# 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)
Verwenden von Sparklyr zum Lesen von Daten
Eine neue Spark-Sitzung enthält keine Daten. Sie müssen dann entweder Daten in den Speicher Ihrer Spark-Sitzung laden oder Spark auf den Speicherort der Daten verweisen, damit die Sitzung auf die Daten bei Bedarf zugreifen kann:
# 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)
Mit sparklyr können Sie Daten auch aus einer Lakehouse-Datei mit einem ABFS-Pfadwert write und read. Um ein Lakehouse zu lesen und zu schreiben, fügen Sie Ihrer Sitzung zunächst das Lakehouse hinzu. Wählen Sie auf der linken Seite des Notizbuchs "Hinzufügen" aus, um ein vorhandenes Lakehouse hinzuzufügen. Darüber hinaus können Sie ein Lakehouse erstellen.
Um Ihren ABFS-Pfad zu finden, wählen Sie den Ordner "Dateien " in Ihrem Lakehouse mit der rechten Maustaste aus, und wählen Sie "ABFS-Pfad kopieren" aus. Fügen Sie Ihren Pfad ein, um abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files im folgenden Codebeispiel zu ersetzen.
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)
Verwenden von Sparklyr zum Bearbeiten von Daten
sparklyr bietet verschiedene Möglichkeiten zum Verarbeiten von Daten innerhalb von Spark mit:
-
dplyr-Befehle - SparkSQL
- Featuretransformatoren von Spark
Verwenden Sie dplyr
Sie können vertraute dplyr Befehle verwenden, um Daten in Spark vorzubereiten. Die Befehle werden in Spark ausgeführt und verhindern unnötige Datenübertragungen zwischen R und 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
Die Bearbeitung von Daten mit dplyr Ressource bietet weitere Informationen zur Verwendung von Dplyr mit Spark.
sparklyr und dplyr übersetzen Sie die R-Befehle in Spark SQL. Wird show_query() verwendet, um die resultierende Abfrage anzuzeigen:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Verwenden von SQL
Sie können SQL-Abfragen auch direkt für Tabellen innerhalb eines Spark-Clusters ausführen. Das spark_connection() -Objekt implementiert eine DBI--Schnittstelle für Spark, sodass Sie dbGetQuery() verwenden können, um SQL auszuführen und das Ergebnis als R-Datenrahmen zurückzugeben:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Verwenden von Featuretransformatoren
Beide vorherigen Methoden basieren auf SQL-Anweisungen. Spark stellt Befehle bereit, die einige Datentransformationen bequemer machen, ohne SQL zu verwenden. Beispielsweise vereinfacht der ft_binarizer() Befehl die Erstellung einer neuen Spalte, die angibt, ob ein Wert in einer anderen Spalte einen bestimmten Schwellenwert überschreitet:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Die Referenz -FT-Ressource bietet eine vollständige Liste der Spark Feature Transformers, die durch sparklyr verfügbar sind.
Freigeben von Daten zwischen sparklyr und SparkR
Wenn Sie verwenden, um sparklyr mithilfe von method = "synapse" mit Synapse Spark Cluster zu verbinden, werden sowohl sparklyr als auch SparkR in derselben Sitzung verfügbar und können Daten problemlos gemeinsam nutzen. Sie können eine Spark-Tabelle in sparklyr erstellen und aus SparkR lesen.
# 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)
Maschinelles Lernen
Im folgenden Beispiel wird ml_linear_regression() verwendet, um ein lineares Regressionsmodell anzupassen. Das Modell verwendet das integrierte mtcars Dataset, um den Kraftstoffverbrauchmpg () eines Autos basierend auf dem Gewicht (wt) des Autos und der Anzahl der Zylinder (cyl) des Automotors vorherzusagen. Alle Fälle gehen hier von einer linearen Beziehung zwischen mpg und jedem unserer Features aus.
Generieren von Test- und Schulungsdatensätzen
Verwenden Sie die Aufteilung 70 % zum Training und 30 % zum Testen des Modells. Änderungen an diesem Verhältnis führen zu verschiedenen Modellen:
# 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)
Trainieren des Modells
Trainieren Sie das Logistische Regressionsmodell.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Verwenden Sie summary() , um mehr über die Qualität unseres Modells und die statistische Bedeutung jedes Prädiktors zu erfahren.
summary(fit)
Modell verwenden
Aufrufen ml_predict() , um das Modell auf das Test-Dataset anzuwenden:
pred <- ml_predict(fit, partitions$test)
head(pred)
Besuchen Sie Referenz - ML für eine Liste der Spark ML-Modelle, die über Sparklyr verfügbar sind.
Vom Spark-Cluster trennen
Rufen Sie spark_disconnect()auf, oder wählen Sie die Schaltfläche " Sitzung beenden " oben im Notizbuchmenüband aus, um Die Spark-Sitzung zu beenden:
spark_disconnect(sc)
Verwandte Inhalte
Weitere Informationen zu den R-Funktionen: