Korzystanie z interfejsu sparklyr
sparklyr to interfejs języka R dla platformy Apache Spark. Zapewnia mechanizm interakcji z platformą Spark przy użyciu znanych interfejsów języka R. Interfejs sparklyr można używać za pomocą definicji zadań wsadowych platformy Spark lub interaktywnych notesów usługi Microsoft Fabric.
sparklyr
jest używany wraz z innymi uporządkowanymi pakietami, takimi jak dplyr. Usługa Microsoft Fabric dystrybuuje najnowszą stabilną wersję sparklyr i tidyverse przy każdym wydaniu środowiska uruchomieniowego. Możesz je zaimportować i rozpocząć korzystanie z interfejsu API.
Wymagania wstępne
Uzyskaj subskrypcję usługi Microsoft Fabric. Możesz też utworzyć konto bezpłatnej wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Użyj przełącznika środowiska po lewej stronie głównej, aby przełączyć się na środowisko usługi Synapse Nauka o danych.
Otwórz lub utwórz notes. Aby dowiedzieć się, jak używać notesów usługi Microsoft Fabric, zobacz Jak używać notesów usługi Microsoft Fabric.
Ustaw opcję języka na SparkR (R), aby zmienić język podstawowy.
Dołącz notes do magazynu lakehouse. Po lewej stronie wybierz pozycję Dodaj , aby dodać istniejący obiekt lakehouse lub utworzyć jezioro.
Połączenie sparklyr do klastra Usługi Synapse Spark
Użyj następującej metody połączenia w programie , spark_connect()
aby nawiązać sparklyr
połączenie. Obsługujemy nową metodę połączenia o nazwie synapse
, która umożliwia nawiązanie połączenia z istniejącą sesją platformy Spark. Znacznie skraca sparklyr
czas rozpoczęcia sesji. Ponadto współtworzyliśmy tę metodę połączenia z projektem sparklyr typu open source. Za pomocą method = "synapse"
programu można używać zarówno tych samych sesji, sparklyr
jak i SparkR
w tej samej sesji, a także łatwo udostępniać między nimi dane.
# 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)
Odczytywanie danych za pomocą interfejsu sparklyr
Nowa sesja platformy Spark nie zawiera żadnych danych. Pierwszym krokiem jest załadowanie danych do pamięci sesji platformy Spark lub wskazanie platformy Spark lokalizacji danych w celu uzyskania dostępu do danych na żądanie.
# 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)
Za pomocą polecenia sparklyr
można również write
używać pliku Lakehouse i read
danych przy użyciu ścieżki ABFS. Aby odczytać i zapisać w usłudze Lakehouse, najpierw dodaj go do sesji. Po lewej stronie notesu wybierz pozycję Dodaj , aby dodać istniejącą usługę Lakehouse lub utworzyć usługę Lakehouse.
Aby znaleźć ścieżkę ABFS, kliknij prawym przyciskiem myszy folder Files w usłudze Lakehouse, a następnie wybierz pozycję Kopiuj ścieżkę ABFS. Wklej ścieżkę, aby zastąpić abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
w tym kodzie:
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)
Używanie interfejsu sparklyr do manipulowania danymi
sparklyr
Udostępnia wiele metod przetwarzania danych wewnątrz platformy Spark przy użyciu:
dplyr
Polecenia- SparkSQL
- Transformatory funkcji platformy Spark
Korzystanie z polecenia dplyr
Możesz użyć znanych dplyr
poleceń, aby przygotować dane wewnątrz platformy Spark. Polecenia są uruchamiane wewnątrz platformy Spark, więc nie ma niepotrzebnych transferów danych między językiem R i platformą Spark.
Kliknij pozycję Manipulowanie danymi za pomocą, dplyr
aby wyświetlić dodatkową dokumentację dotyczącą korzystania z programu dplyr z platformą 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
i dplyr
przetłumacz polecenia języka R na usługę Spark SQL. Aby wyświetlić wynikowe zapytanie, użyj polecenia show_query()
:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Korzystanie z bazy danych SQL
Istnieje również możliwość wykonywania zapytań SQL bezpośrednio względem tabel w klastrze Spark. Obiekt spark_connection()
implementuje interfejs DBI dla platformy Spark, dzięki czemu można użyć dbGetQuery()
polecenia w celu wykonania kodu SQL i zwrócenia wyniku jako ramki danych języka R:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Korzystanie z funkcji transformers
Obie poprzednie metody bazują na instrukcjach SQL. Platforma Spark udostępnia polecenia, które sprawiają, że niektóre przekształcenia danych są wygodniejsze i nie korzystają z języka SQL.
Na przykład ft_binarizer()
polecenie upraszcza tworzenie nowej kolumny, która wskazuje, czy wartość innej kolumny przekracza określony próg.
Pełną listę transformatorów funkcji platformy Spark można znaleźć w temacie sparklyr
Reference -FT (Dokumentacja -FT).
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Udostępnianie danych między sparklyr
i SparkR
Podczas nawiązywania połączenia z sparklyr
klastrem platformy Synapse Spark za pomocą method = "synapse"
polecenia można używać zarówno w sparklyr
tej samej sesji, jak i SparkR
w prosty sposób udostępniać między nimi dane. Możesz utworzyć tabelę platformy Spark w pliku sparklyr
i odczytać ją z witryny 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)
Uczenie maszynowe
Oto przykład, w którym służymy ml_linear_regression()
do dopasowania modelu regresji liniowej. Używamy wbudowanego mtcars
zestawu danych i sprawdzamy, czy możemy przewidzieć zużycie paliwa samochodu () na podstawie wagi (mpg
wt
) oraz liczby cylindrów, które zawiera silnik (cyl
). W każdym przypadku zakładamy, że relacja między poszczególnymi funkcjami mpg
jest liniowa.
Generowanie zestawów danych testowania i trenowania
Użyj podziału, 70% na potrzeby trenowania i 30% na potrzeby testowania modelu. Gra z tym współczynnikiem powoduje różne modele.
# 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)
Szkolenie modelu
Trenowanie modelu regresji logistycznej.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Teraz użyj summary()
polecenia , aby dowiedzieć się więcej na temat jakości naszego modelu i statystycznego znaczenia każdego z naszych predyktorów.
summary(fit)
Korzystanie z modelu
Model można zastosować w zestawie danych testowych, wywołując polecenie ml_predict()
.
pred <- ml_predict(fit, partitions$test)
head(pred)
Aby uzyskać listę modeli spark ML dostępnych za pośrednictwem interfejsu sparklyr, odwiedź stronę Dokumentacja — ML
Odłączanie od klastra Spark
Możesz wywołać spark_disconnect()
lub wybrać przycisk Zatrzymaj sesję w górnej części wstążki notesu, aby zakończyć sesję platformy Spark.
spark_disconnect(sc)
Powiązana zawartość
Dowiedz się więcej o funkcjach języka R:
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla