sparklyr verwenden
sparklyr ist eine R-Schnittstelle zu Apache Spark. Sie stellt einen Mechanismus für die Interaktion mit Spark mithilfe vertrauter R-Schnittstellen bereit. Sie können sparklyr über Spark-Batchauftragsdefinitionen oder mit interaktiven Microsoft Fabric-Notebooks verwenden.
Wichtig
Microsoft Fabric befindet sich derzeit in der Vorschauversion. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
sparklyr
wird zusammen mit anderen Ordnungspaketen wie dplyr verwendet. Microsoft Fabric verteilt die neueste stabile Version von sparklyr und tidyverse mit jeder Laufzeitversion. Sie können sie importieren und die API verwenden.
Voraussetzungen
Ein Power BI Premium-Abonnement. Wenn Sie noch keines haben, finden Sie weitere Informationen unter So erwerben Sie Power BI Premium.
Ein Power BI-Arbeitsbereich mit zugewiesener Premium-Kapazität. Wenn Sie keinen Arbeitsbereich haben, führen Sie die Schritte unter Erstellen eines Arbeitsbereichs aus, um einen Arbeitsbereich zu erstellen und ihn einer Premium-Kapazität zuzuweisen.
Melden Sie sich bei Microsoft Fabric an.
Öffnen oder erstellen Sie ein Notebook. Weitere Informationen finden Sie unter Verwenden von Microsoft Fabric-Notebooks.
Ändern Sie die primäre Sprache, indem Sie die Sprachoption auf SparkR (R) festlegen.
Schließen Sie Ihr Notebook an ein Lakehouse an. Wählen Sie auf der linken Seite Hinzufügen aus, um ein vorhandenes Lakehouse hinzuzufügen oder ein Lakehouse zu erstellen.
Herstellen einer Verbindung zwischen Sparklyr und Synapse Spark-Cluster
Verwenden Sie die folgende Verbindungsmethode in spark_connect()
, um eine sparklyr
Verbindung herzustellen.
# 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", config = config)
Verwenden von Sparklyr zum Lesen von Daten
Eine neue Spark-Sitzung enthält keine Daten. Der erste Schritt besteht darin, entweder Daten in den Arbeitsspeicher Ihrer Spark-Sitzung zu laden oder Spark auf den Speicherort der Daten zu verweisen, damit es bei Bedarf auf die Daten 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 auch write
Daten read
aus einer Lakehouse-Datei mithilfe des ABFS-Pfads verwenden. Um ein Lakehouse zu lesen und zu schreiben, fügen Sie es zuerst Ihrer Sitzung hinzu. Wählen Sie links im Notebook Hinzufügen aus, um ein vorhandenes Lakehouse hinzuzufügen oder ein Lakehouse zu erstellen.
Um Ihren ABFS-Pfad zu finden, klicken Sie mit der rechten Maustaste auf den Ordner Dateien in Ihrem Lakehouse, und wählen Sie dann ABFS-Pfad kopieren aus. Fügen Sie den pfad ein, der in diesem Code ersetzt abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
werden soll:
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
stellt mehrere Methoden zum Verarbeiten von Daten in Spark bereit:
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, sodass es keine unnötigen Datenübertragungen zwischen R und Spark gibt.
Klicken Sie auf die Option Bearbeiten von Daten mit dplyr
, um zusätzliche Dokumentation zur Verwendung von dplyr mit Spark anzuzeigen.
# 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
und dplyr
übersetzen Sie die R-Befehle für uns in Spark SQL. Verwenden Sie show_query()
zum Anzeigen der resultierenden Abfrage folgendes:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Verwenden von SQL
Es ist auch möglich, SQL-Abfragen direkt für Tabellen innerhalb eines Spark-Clusters auszuführen. Das spark_connection()
-Objekt implementiert eine DBI-Schnittstelle für Spark, sodass Sie SQL ausführen und das Ergebnis als R-Datenrahmen zurückgeben können dbGetQuery()
:
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 eine Datentransformation bequemer machen, und zwar ohne die Verwendung von SQL.
Der Befehl vereinfacht beispielsweise die Erstellung einer neuen Spalte, ft_binarizer()
die angibt, ob der Wert einer anderen Spalte über einem bestimmten Schwellenwert liegt.
Die vollständige Liste der Spark-Featuretransformatoren sparklyr
finden Sie unter Referenz -FT.
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Machine Learning
Hier sehen Sie ein Beispiel, in dem wir ml_linear_regression()
verwenden, um ein lineares Regressionsmodell anzupassen. Wir verwenden das integrierte mtcars
Dataset und prüfen, ob wir den Kraftstoffverbrauch eines Autos (mpg
) basierend auf seinem Gewicht (wt
) und der Anzahl der Zylinder, die der Motor enthält (cyl
) vorhersagen können. Wir gehen jeweils davon aus, dass die Beziehung zwischen mpg
und jedem unserer Features linear ist.
Generieren von Test- und Trainingsdatensätzen
Verwenden Sie eine einfache Aufteilung, 70 % für das Training und 30 % für das Testen des Modells. Das Spielen mit diesem Verhältnis kann zu unterschiedlichen Modellen führen.
# 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()
nun, um etwas mehr über die Qualität unseres Modells und die statistische Signifikanz jedes unserer Prädiktoren zu erfahren.
summary(fit)
Verwenden des Modells
Sie können das Modell auf das Testdataset anwenden, indem Sie aufrufen ml_predict()
.
pred <- ml_predict(fit, partitions$test)
head(pred)
Eine Liste der über Sparklyr verfügbaren Spark ML-Modelle finden Sie unter Referenz – ML.
Trennen des Spark-Clusters
Sie können spark_disconnect()
die Schaltfläche Sitzung beenden oben im Notebook-Menüband aufrufen oder auswählen, um Ihre Spark-Sitzung zu beenden.
spark_disconnect(sc)
Nächste Schritte
Weitere Informationen zu den R-Funktionen: