Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ресурс языка 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: