Použití sparklyru
sparklyr je rozhraní R pro Apache Spark. Poskytuje mechanismus pro interakci se Sparkem pomocí známých rozhraní jazyka R. Minigrafyr můžete použít prostřednictvím definic dávkových úloh Sparku nebo s interaktivními poznámkovými bloky Microsoft Fabric.
sparklyr
se používá spolu s dalšími balíčky tidyverse , jako je dplyr. Microsoft Fabric distribuuje nejnovější stabilní verzi sparklyr a tidyverse s každou verzí modulu runtime. Můžete je importovat a začít používat rozhraní API.
Požadavky
Získejte předplatné Microsoft Fabric. Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabricu.
Přihlaste se k Microsoft Fabric.
Pomocí přepínače prostředí na levé straně domovské stránky přepněte na prostředí Synapse Datová Věda.
Otevřete nebo vytvořte poznámkový blok. Postup najdete v tématu Použití poznámkových bloků Microsoft Fabric.
Nastavte možnost jazyka na SparkR (R) a změňte primární jazyk.
Připojte poznámkový blok k jezeru. Na levé straně vyberte Přidat, pokud chcete přidat existující jezerní dům nebo vytvořit jezero.
Připojení sparklyr do clusteru Synapse Spark
K navázání připojení použijte následující metodu spark_connect()
sparklyr
připojení. Podporujeme novou metodu připojení s názvem synapse
, která umožňuje připojit se k existující relaci Sparku. Výrazně zkracuje sparklyr
čas spuštění relace. Kromě toho jsme přispěli touto metodou připojení k opensourcovém projektu sparklyr. Díky method = "synapse"
tomu můžete používat obě sparklyr
relace i SparkR
ve stejné relaci a snadno sdílet data mezi nimi.
# 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)
Čtení dat pomocí sparklyru
Nová relace Sparku neobsahuje žádná data. Prvním krokem je načtení dat do paměti relace Sparku nebo nasměrování Sparku na umístění dat, aby k datům na vyžádání mělo přístup.
# 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)
Pomocí sparklyr
, můžete také write
a read
data ze souboru Lakehouse pomocí cesty ABFS. Pokud chcete číst a zapisovat do Lakehouse, nejprve ho přidejte do relace. Na levé straně poznámkového bloku vyberte Přidat a přidejte existující lakehouse nebo vytvořte Lakehouse.
Pokud chcete najít cestu ABFS, klikněte pravým tlačítkem na složku Soubory ve vašem Lakehouse a pak vyberte Kopírovat cestu ABFS. Vložte cestu, kterou chcete nahradit abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
v tomto kódu:
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)
Použití sparklyru k manipulaci s daty
sparklyr
poskytuje několik metod pro zpracování dat uvnitř Sparku pomocí:
dplyr
Příkazy- SparkSQL
- Transformátory funkcí Sparku
Použití dplyr
K přípravě dat uvnitř Sparku můžete použít známé dplyr
příkazy. Příkazy běží uvnitř Sparku, takže mezi R a Sparkem nejsou žádné zbytečné přenosy dat.
Kliknutím na položku Manipulace s daty dplyr
zobrazíte další dokumentaci k použití dplyru se Sparkem.
# 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
a dplyr
přeložte příkazy R do Spark SQL. K zobrazení výsledného dotazu použijte show_query()
:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Použití SQL
Je také možné spouštět dotazy SQL přímo na tabulky v clusteru Spark. Objekt spark_connection()
implementuje rozhraní DBI pro Spark, takže můžete použít dbGetQuery()
ke spuštění SQL a vrátit výsledek jako datový rámec R:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Použití transformátorů funkcí
Obě předchozí metody spoléhají na příkazy SQL. Spark poskytuje příkazy, které usnadňují transformaci dat a bez použití SQL.
Například příkaz zjednodušuje vytvoření nového sloupce, který označuje, ft_binarizer()
jestli hodnota jiného sloupce překračuje určitou prahovou hodnotu.
Úplný seznam transformátorů funkcí Sparku, které jsou k dispozici prostřednictvím sparklyr
reference -FT.
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Sdílení dat mezi sparklyr
a SparkR
Když se připojíte sparklyr
ke clusteru Synapse Spark pomocí method = "synapse"
, můžete použít obě SparkR
sparklyr
a ve stejné relaci a snadno sdílet data mezi nimi. Tabulku Sparku sparklyr
můžete vytvořit a přečíst z SparkR
ní .
# 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)
strojové učení
Tady je příklad, ve kterém se používá ml_linear_regression()
k přizpůsobení lineárního regresního modelu. Použijeme integrovanou mtcars
datovou sadu a zjistíme, jestli můžeme na základě hmotnosti () a počtu válců, které motor obsahuje (cyl
), předpovědět spotřebu paliva (mpg
wt
). V každém případě předpokládáme, že vztah mezi mpg
jednotlivými funkcemi je lineární.
Generování testovacích a trénovacích datových sad
Pro trénování použijte rozdělení, 70 % pro trénování a 30 % pro testování modelu. Hra s tímto poměrem vede k různým modelům.
# 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)
Trénování modelu
Trénujte model logistické regrese.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Teď se můžete summary()
dozvědět více o kvalitě našeho modelu a statistické významnosti každého z našich prediktorů.
summary(fit)
Použití modelu
Model můžete použít pro testovací datovou sadu voláním ml_predict()
.
pred <- ml_predict(fit, partitions$test)
head(pred)
Seznam modelů Spark ML, které jsou k dispozici prostřednictvím sparklyr, najdete v referenčních informacích – ML
Odpojení od clusteru Spark
Můžete volat spark_disconnect()
nebo vybrat tlačítko Zastavit relaci v horní části pásu karet poznámkového bloku ukončit relaci Sparku.
spark_disconnect(sc)
Související obsah
Další informace o funkcích jazyka R:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro