Bruk sparklyr
sparklyr er et R-grensesnitt til Apache Spark. Den gir en mekanisme for å samhandle med Spark ved hjelp av kjente R-grensesnitt. Du kan bruke sparklyr gjennom spark batch jobb definisjoner eller med interaktive Microsoft Fabric notatblokker.
Viktig
Microsoft Fabric er for øyeblikket i FORHÅNDSVERSJON. Denne informasjonen er knyttet til et forhåndsutgitt produkt som kan endres vesentlig før det utgis. Microsoft gir ingen garantier, uttrykt eller underforstått, med hensyn til informasjonen som er oppgitt her.
sparklyr
brukes sammen med andre ryddige pakker, for eksempel dplyr. Microsoft Fabric distribuerer den nyeste stabile versjonen av sparklyr og tidyverse med hver kjøretidsutgivelse. Du kan importere dem og begynne å bruke API-en.
Forutsetninger
Et Power BI Premium abonnement. Hvis du ikke har en, kan du se Slik kjøper du Power BI Premium.
Et Power BI-arbeidsområde med tilordnet Premium-kapasitet. Hvis du ikke har et arbeidsområde, bruker du fremgangsmåten i Opprett et arbeidsområde for å opprette et og tilordne det til en Premium-kapasitet.
Logg på Microsoft Fabric.
Åpne eller opprette en notatblokk. Hvis du vil lære hvordan du gjør det, kan du se Slik bruker du Microsoft Fabric-notatblokker.
Endre primærspråket ved å angi språkalternativet til SparkR (R).
Legg ved notatblokken i et lakehouse. Velg Legg til på venstre side for å legge til et eksisterende lakehouse eller opprette et lakehouse.
Koble sparklyr til Synapse Spark-klynge
Bruk følgende tilkoblingsmetode til spark_connect()
å opprette en sparklyr
tilkobling.
# 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)
Bruke sparklyr til å lese data
En ny Spark-økt inneholder ingen data. Det første trinnet er enten å laste inn data i Spark-øktens minne, eller peke Spark til plasseringen av dataene slik at de kan få tilgang til dataene ved behov.
# 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)
Ved hjelp av sparklyr
, kan du også write
og read
data fra en Lakehouse-fil ved hjelp av ABFS-banen. Hvis du vil lese og skrive til en Lakehouse, må du først legge den til i økten. Velg Legg til på venstre side av notatblokken for å legge til et eksisterende Lakehouse eller opprette et Lakehouse.
Hvis du vil finne ABFS-banen, høyreklikker du på Filer-mappen i Lakehouse, og deretter velger du Kopier ABFS-banen. Lim inn banen som skal erstattes abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
i denne koden:
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)
Bruke sparklyr til å manipulere data
sparklyr
inneholder flere metoder for å behandle data i Spark ved hjelp av:
dplyr
Kommandoer- SparkSQL
- Sparks funksjonstransformatorer
Bruke dplyr
Du kan bruke kjente dplyr
kommandoer til å klargjøre data i Spark. Kommandoene kjører i Spark, så det er ingen unødvendige dataoverføringer mellom R og Spark.
Klikk på Manipulating Data with dplyr
for å se ekstra dokumentasjon om hvordan du bruker dplyr med 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
sparklyr
og dplyr
oversett R-kommandoene til Spark SQL for oss. Slik ser du den resulterende spørringsbruken show_query()
:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Bruk SQL
Det er også mulig å kjøre SQL-spørringer direkte mot tabeller i en Spark-klynge. Objektet spark_connection()
implementerer et DBI-grensesnitt for Spark, slik at du kan bruke dbGetQuery()
til å kjøre SQL og returnere resultatet som en R-dataramme:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Bruk funksjonstransformatorer
Begge de forrige metodene er avhengige av SQL-setninger. Spark inneholder kommandoer som gjør litt datatransformasjon mer praktisk, og uten bruk av SQL.
Kommandoen forenkler for eksempel ft_binarizer()
opprettingen av en ny kolonne som angir om verdien til en annen kolonne er over en bestemt terskel.
Du finner den fullstendige listen over Transformatorer for Spark-funksjoner som er tilgjengelige sparklyr
fra Reference -FT.
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Maskinlæring
Her er et eksempel der vi bruker ml_linear_regression()
til å tilpasse en lineær regresjonsmodell. Vi bruker det innebygde mtcars
datasettet, og ser om vi kan forutsi bilens drivstofforbruk (mpg
) basert på vekten (wt
), og antall sylindere motoren inneholder (cyl
). Vi antar i hvert tilfelle at relasjonen mellom mpg
og hver av funksjonene våre er lineær.
Generer test- og opplæringsdatasett
Bruk en enkel deling, 70 % for opplæring og 30 % for testing av modellen. Avspilling med dette forholdet kan resultere i forskjellige modeller.
# 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)
Lær opp modellen
Lær opp den logistiske regresjonsmodellen.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
summary()
Bruk nå til å lære litt mer om kvaliteten på modellen vår, og den statistiske betydningen av hver av våre prediktorer.
summary(fit)
Bruk modellen
Du kan bruke modellen på testdatasettet ved å ringe ml_predict()
.
pred <- ml_predict(fit, partitions$test)
head(pred)
Hvis du vil ha en liste over Spark ML-modeller som er tilgjengelige via sparklyr, kan du gå til Referanse – ML
Koble fra Spark-klyngen
Du kan ringe spark_disconnect()
til eller velge Stopp økt-knappen øverst på notatblokkbåndet for å avslutte Spark-økten.
spark_disconnect(sc)
Neste trinn
Mer informasjon om R-funksjonene: