Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ресурс языка R sparklyr служит интерфейсом для Apache Spark. Ресурс Sparklr предоставляет механизм взаимодействия с Знакомыми интерфейсами R Spark. Используйте sparklyr через определения пакетных заданий Spark или интерактивные блокноты Microsoft Fabric.
sparklyr
используется с другими пакетами tidyverse , например dplyr. Microsoft Fabric распространяет последнюю стабильную версию sparklyr и tidyverse с каждым выпуском среды выполнения. Эти ресурсы можно импортировать и начать использовать API.
Необходимые условия
Получите подписку Microsoft Fabric. Или вы можете подписаться на бесплатную пробную версию Microsoft Fabric.
Войдите в Microsoft Fabric.
Используйте переключатель интерфейса в левой нижней части домашней страницы, чтобы перейти на Fabric.
Откройте или создайте записную книжку. Дополнительные сведения см. в статье Использование записных книжек Microsoft Fabric.
Установите языковую опцию на SparkR (R), чтобы изменить основной язык.
Подключите ноутбук к lakehouse. В левой части выберите Добавить, чтобы добавить существующий лейкхаус или создать новый лейкхаус.
Подключение sparklyr к кластеру Synapse Spark
Метод подключения функции spark_connect()
устанавливает соединение sparklyr
. Функция создает новый метод подключения с именем synapse
, который подключается к существующему сеансу Spark. Это значительно сокращает время начала сеанса sparklyr
. Этот метод подключения доступен в проекте sparklyr с открытым кодом. С помощью method = "synapse"
можно использовать как sparklyr
, так и SparkR
в одной сессии и легко обмениваться данными между ними. В следующем примере кода ячейки записной книжки используется функция spark_connect()
:
# 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)
Используйте sparklyr для чтения данных
Новый сеанс Spark не содержит данных. Затем необходимо загрузить данные в память сеанса Spark или указать Spark расположение данных, чтобы сеанс смог получить доступ к данным по запросу:
# 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)
С помощью sparklyr
, вы также можете write
и read
извлекать данные из файла Lakehouse, используя значение пути ABFS. Чтобы прочитать и записать в Lakehouse, сначала добавьте Lakehouse в сеанс. В левой части записной книжки нажмите кнопку "Добавить ", чтобы добавить существующий Lakehouse. Кроме того, можно создать Lakehouse.
Чтобы найти путь ABFS, щелкните правой кнопкой мыши папку "Файлы " в Lakehouse и выберите путь Copy ABFS. Вставьте путь для замены abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
в следующем примере кода:
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)
Использование sparklyr для управления данными
sparklyr
предоставляет различные способы обработки данных внутри Spark с помощью:
- команды
dplyr
- SparkSQL
- Преобразователи функций Spark
Используйте dplyr
Для подготовки данных в Spark можно использовать знакомые команды dplyr
. Команды выполняются внутри Spark, предотвращая ненужные передачи данных между R и 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
Ресурс Manipulating Data with dplyr
предоставляет дополнительную информацию об использовании dplyr с Spark.
sparklyr
и dplyr
преобразуйте команды R в Spark SQL. Используется show_query()
для отображения результирующего запроса:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Использование SQL
Запросы SQL также можно выполнять непосредственно в таблицах в кластере Spark. Объект spark_connection()
реализует интерфейс DBI для Spark, чтобы использовать dbGetQuery()
для выполнения SQL и возврата результата в виде кадра данных R:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Использование преобразователей компонентов
Оба предыдущих метода используют инструкции SQL. Spark предоставляет команды, которые упрощают некоторые преобразования данных без использования SQL. Например, ft_binarizer()
команда упрощает создание нового столбца, указывающего, превышает ли значение в другом столбце определенное пороговое значение:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Ресурс Reference -FT предоставляет полный список доступных преобразователей sparklyr
функций Spark.
Совместное использование данных между sparklyr
и SparkR
При подключении sparklyr
к кластеру synapse spark с method = "synapse"
помощью обоих sparklyr
SparkR
и становятся доступными в одном сеансе и могут легко обмениваться данными между собой. Вы можете создать таблицу Spark в sparklyr
и прочитать её из 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)
Обучение машины
В следующем примере используется ml_linear_regression()
для соответствия модели линейной регрессии. Модель использует встроенный mtcars
набор данных, чтобы попытаться предсказать потребление топлива () автомобиля на основе веса (mpg
wt
) автомобиля и количества цилиндров (cyl
) двигателя автомобиля. Все случаи здесь предполагают линейную связь между mpg
всеми нашими функциями.
Создание наборов данных тестирования и обучения
Используйте разбиение: 70% для обучения и 30% для тестирования модели. Изменения в этом соотношении приводят к различным моделям:
# 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)
Обучение модели
Натренируйте модель логистической регрессии.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Используйте summary()
для получения дополнительных сведений о качестве нашей модели и статистической важности каждого из наших прогнозаторов:
summary(fit)
Используйте модель
Вызовите ml_predict()
, чтобы применить модель к тестовому набору данных.
pred <- ml_predict(fit, partitions$test)
head(pred)
Посетите Reference - ML для получения списка моделей машинного обучения Spark, доступных с помощью sparklyr.
Отключение от кластера Spark
Вызовите spark_disconnect()
, или нажмите кнопку «Остановить сеанс» на панели инструментов записной книжки, чтобы завершить сеанс Spark.
spark_disconnect(sc)
Связанное содержимое
Дополнительные сведения о функциях R: