Obs!
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
R-språk sparklyr-ressursen fungerer som et grensesnitt til Apache Spark. Sparklr-ressursen gir en mekanisme for å samhandle med Spark med kjente R-grensesnitt. Bruk sparklyr gjennom spark batch jobbdefinisjoner eller med interaktive Microsoft Fabric notatblokker.
sparklyr
brukes med andre tidyverse pakker – for eksempel dplyr. Microsoft Fabric distribuerer den nyeste stabile versjonen av både sparklyr og tidyverse med hver runtime-utgivelse. Du kan importere disse ressursene og begynne å bruke API-en.
Forutsetninger
Få et Microsoft Fabric-abonnement. Eller registrer deg for en gratis Prøveversjon av Microsoft Fabric.
Logg på Microsoft Fabric.
Bruk opplevelsesbryteren nederst til venstre på hjemmesiden for å bytte til Fabric.
Åpne eller opprett en notatblokk. Hvis du vil lære hvordan du gjør det, kan du se Slik bruker du Microsoft Fabric-notatblokker.
Angi språkalternativet til SparkR (R)- for å endre primærspråket.
Legg notatblokken til et lakehouse. På venstre side velger du Legg til for å legge til et eksisterende innsjøhus eller opprette et innsjøhus.
Koble sparklyr til Synapse Spark-klynge
Funksjonstilkoblingsmetoden spark_connect()
oppretter en sparklyr
tilkobling. Funksjonen bygger en ny tilkoblingsmetode med navnet synapse
, som kobler til en eksisterende Spark-økt. Det reduserer starttidspunktet for sparklyr
økt dramatisk. Denne tilkoblingsmetoden er tilgjengelig i sparklyr-prosjektet med åpen kildekode. Med method = "synapse"
kan du bruke både sparklyr
og SparkR
i samme økt, og enkelt dele data mellom dem. Følgende eksempel på notatblokkcellekode bruker spark_connect()
funksjonen:
# 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)
Bruk sparklyr til å lese data
En ny Spark-økt inneholder ingen data. Deretter må du enten laste inn data i Spark-øktens minne, eller peke Spark til plasseringen av dataene slik at økten får 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)
Med sparklyr
kan du også write
og read
data fra en Lakehouse-fil bruke en ABFS-baneverdi. Hvis du vil lese og skrive til en Lakehouse, må du først legge til Lakehouse i økten. På venstre side av notatblokken velger du Legg til for å legge til et eksisterende Lakehouse. I tillegg kan du opprette et Lakehouse.
Hvis du vil finne ABFS-banen, høyreklikker du Filer-mappen i Lakehouse og velger Kopier ABFS-bane. Lim inn banen for å erstatte abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
i følgende kodeeksempel:
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)
Bruk sparklyr til å manipulere data
sparklyr
inneholder ulike måter å behandle data på i Spark, med:
-
dplyr
kommandoer - SparkSQL
- Spark-funksjonstransformatorer
Bruk dplyr
Du kan bruke kjente dplyr
kommandoer til å klargjøre data i Spark. Kommandoene kjører i Spark, og forhindrer unødvendige dataoverføringer mellom R og 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
Manipulering av data med dplyr
ressurs gir mer informasjon om bruk av dplyr med Spark.
sparklyr
og dplyr
oversett R-kommandoene til Spark SQL. Bruk show_query()
denne til å vise den resulterende spørringen:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Bruk SQL
Du kan også kjøre SQL-spørringer direkte mot tabeller i en Spark-klynge. Det spark_connection()
objektet 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 tidligere metodene er avhengige av SQL-setninger. Spark gir kommandoer som gjør noen datatransformasjoner mer praktiske, uten bruk av SQL. Kommandoen forenkler for eksempel ft_binarizer()
opprettingen av en ny kolonne som angir om en verdi i en annen kolonne overskrider en bestemt terskel:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Reference -FT-ressursen tilbyr en fullstendig liste over Transformatorer for spark-funksjoner som er tilgjengelige via sparklyr
.
Dele data mellom sparklyr
og SparkR
Når du kobler sparklyr
til spark-klyngen for synapse med method = "synapse"
, blir begge sparklyr
SparkR
tilgjengelige i samme økt og enkelt kan dele data mellom seg selv. Du kan opprette en spark-tabell i sparklyr
og lese den fra SparkR
:
# 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)
Maskinlæring
Følgende eksempel bruker ml_linear_regression()
til å tilpasse en lineær regresjonsmodell. Modellen bruker det innebygde mtcars
datasettet til å prøve å forutsi drivstofforbruket (mpg
) til en bil basert på bilens vekt (wt
) og antall sylindere (cyl
) på bilmotoren. Alle tilfeller her forutsetter en lineær relasjon mellom mpg
og hver av funksjonene våre.
Generer datasett for testing og opplæring
Bruk en splitt - 70% for opplæring og 30% - for å teste modellen. Endringer i dette forholdet fører til ulike 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)
Kalibrer modellen
Kalibrer logistikkregresjonsmodellen.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Bruk summary()
denne til å lære mer om kvaliteten på modellen vår, og den statistiske betydningen av hver av våre prediktorer:
summary(fit)
Bruk modellen
Kall ml_predict()
til å bruke modellen på testdatasettet:
pred <- ml_predict(fit, partitions$test)
head(pred)
Gå til Referanse – ML for en liste over Spark ML-modeller som er tilgjengelige via sparklyr.
Koble fra Spark-klynge
Ring spark_disconnect()
, eller velg Stopp økt-knappen øverst på notatblokkbåndet for å avslutte Spark-økten:
spark_disconnect(sc)
Relatert innhold
Finn ut mer om R-funksjonaliteten: