Jaa


Käytä sparklyr

sparklyr on Apache Sparkin R-käyttöliittymä. Se tarjoaa mekanismin Sparkin kanssa vuorovaikuttamiseen tuttujen R-liittymien avulla. Voit käyttää sparklyr-spark-erätyön määritelmiä tai vuorovaikutteisia Microsoft Fabric -muistikirjoja.

sparklyr -painikkeita käytetään yhdessä muiden siistien pakettien, kuten plyrin, kanssa. Microsoft Fabric jakaa uusimman vakaan version sparklyr- ja siivoamisesta jokaisen suorituksenaikaisen julkaisun yhteydessä. Voit tuoda ne ja aloittaa ohjelmointirajapinnan käytön.

Edellytykset

  • Avaa muistikirja tai luo se. Lisätietoja on artikkelissa Microsoft Fabric -muistikirjojen käyttäminen.

  • Muuta ensisijaista kieltä määrittämällä kieliasetukseksi SparkR (R ).

  • Liitä muistikirjasi Lakehouseen. Valitse vasemmalla puolella Lisää lisätäksesi olemassa olevan lakehousen tai luodaksesi lakehousen.

Näyttöyhteys sparklyr Synapse Spark -klusteriin

Muodosta yhteys seuraavan - spark_connect() menetelmän sparklyr avulla. Tuemme uutta yhteystapaa nimeltä synapse, jonka avulla voit muodostaa yhteyden aiemmin luotuun Spark-istuntoon. Se lyhentää merkittävästi istunnon alkamisaikaa sparklyr . Lisäksi olemme antaneet tämän yhteysmenetelmän avoin lähdekoodi sparklyr-projektiin. -parametrilla method = "synapse"voit käyttää sekä SparkR -istuntoa että sparklyr -istuntoa ja jakaa tietoja helposti niiden välillä.

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

Tietojen lukeminen sparklyr-säätimellä

Uusi Spark-istunto ei sisällä tietoja. Ensimmäinen vaihe on joko ladata tiedot Spark-istunnon muistiin tai osoittaa Spark tietojen sijaintiin, jotta se voi käyttää tietoja pyynnöstä.

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

:n avulla sparklyrvoit myös write read tehdä tietoja Lakehouse-tiedostosta käyttämällä ABFS-polkua. Jos haluat lukea Lakehousen ja kirjoittaa siihen, lisää se ensin istuntoosi. Valitse muistikirjan vasemmasta reunasta Lisää , jos haluat lisätä olemassa olevan Lakehousen tai luoda Lakehousen.

Jos haluat löytää ABFS-polun, napsauta hiiren kakkospainikkeella Tiedostot-kansiota Lakehousessa ja valitse sitten Kopioi ABFS-polku. Liitä polku, joka korvataan abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files tässä koodissa:

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)

Tietojen käsitteleminen sparklyr-ohjauksen avulla

sparklyr tarjoaa useita menetelmiä tietojen käsittelemiseen Sparkissä käyttämällä:

  • dplyr Komennot
  • SparkSQL
  • Sparkin ominaisuusmuuntajat

Käyttää dplyr

Voit käyttää tuttuja dplyr komentoja tietojen valmistelemiseen Sparkin sisällä. Komennot suoritetaan Sparkin sisällä, joten R:n ja Sparkin välillä ei ole tarpeettomia tiedonsiirtoja.

Napsauttamalla Tietojen käsitteleminen -kohtaa dplyr saat lisädokumentaatiota plyrin käyttämisestä Sparkin kanssa.

# 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 ja dplyr kääntää R-komennot Spark SQL:ksi puolestamme. Jos haluat nähdä tuloksena saatavan kyselyn, käytä seuraavaa show_query():

# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)

SQL:n käyttäminen

Voit myös suorittaa SQL-kyselyitä suoraan Spark-klusterin taulukoista. -spark_connection() objekti toteuttaa DBI-liittymän Sparkille, joten voit dbGetQuery() suorittaa SQL:n ja palauttaa tuloksen R-tietokehyksenä:

library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")

Ominaisuuksien muuntajien käyttäminen

Molemmat edelliset menetelmät perustuvat SQL-lausekkeisiin. Spark tarjoaa komentoja, jotka tekevät tietojen muuntamisesta kätevämpää ilman SQL:n käyttöä.

Esimerkiksi komento yksinkertaistaa uuden sarakkeen luomista, joka ilmaisee, ft_binarizer() onko toisen sarakkeen arvo tietyn raja-arvon yläpuolella.

Löydät spark-toimintojen muuntajien täydellisen luettelon kohdasta sparklyr Viittaus -FT.

mtcars_tbl %>% 
  ft_binarizer("mpg", "over_20", threshold = 20) %>% 
  select(mpg, over_20) %>% 
  head(5)

Tietojen jakaminen - ja -arvojen välillä sparklyrSparkR

Kun muodostat yhteyden synapse spark -klusteriin :n avullamethod = "synapse", voit käyttää sekä -istuntoa että sparklyr SparkR samassa istunnossa ja jakaa tietoja helposti niiden sparklyr välillä. Voit luoda spark-taulukon kohteessa sparklyr ja lukea sen kohteesta 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)

Koneoppiminen

Tässä on esimerkki, jossa käytetään ml_linear_regression() lineaarisen regressiomallin sovittamista. Käytämme sisäistä mtcars tietojoukkoa ja tarkistamme, voimmeko ennustaa auton polttoaineen kulutuksen () sen painon (mpgwt) ja moottorin sisältämien kaasupullojen määrän (cyl). Oletamme kussakin tapauksessa, että ominaisuuksien ja jokaisen ominaisuuden välinen mpg suhde on lineaarinen.

Testauksen ja harjoittamisen tietojoukkojen luominen

Käytä jakoa, 70 % harjoittamiseen ja 30 % mallin testaamiseen. Tämän suhteen käyttäminen tuottaa erilaisia malleja.

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

Sinun täytyy harjoittaa malli.

Harjoita logistinen regressiomalli.

fit <- partitions$training %>%
  ml_linear_regression(mpg ~ .)

fit

Sen avulla summary() opit lisää mallimme laadusta ja kunkin ennusteen tilastollisesta merkityksestä.

summary(fit)

Käytä mallia

Voit ottaa mallin käyttöön testitietojoukossa kutsumalla ml_predict().

pred <- ml_predict(fit, partitions$test)

head(pred)

Luettelo Sparkin automaattianalyysipalveluiden malleista, jotka ovat saatavilla sparklyr-ohjeen kautta – koneoppiminen

Yhteyden katkaiseminen Spark-klusteriin

Voit kutsua spark_disconnect() tai valita Stop session -painikkeen muistikirjan valintanauhan yläosasta Spark-istunnon päätteeksi.

spark_disconnect(sc)

Lue lisää R-toiminnoista: