Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server 2019 (15.x)
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
Sparklyr предоставляет интерфейс R для Apache Spark. Sparklyr — это популярный способ для разработчиков R использовать Spark. В этой статье описывается использование sparklyr в кластерах больших данных SQL Server 2019 с помощью RStudio.
Prerequisites
Установка R и RStudio Desktop
Установите и настройте RStudio Desktop , выполнив следующие действия.
Если вы работаете на клиенте Windows, скачайте и установите R 3.6.3. Кроме того, скачайте и установите RTools 3.5. Обязательно настройте двоичную папку RTools в переменной среды PATH.
Warning
Версии R 4.x и версии sparklyr, отличные от указанной ниже, были проверены и не работают по состоянию на CU13 SQL Server Big Data Clusters.
Скачайте и установите RStudio Desktop. При желании все примеры работают в оболочке R.
После завершения установки выполните следующие команды в оболочке RStudio Desktop или R, чтобы установить необходимые пакеты. При появлении запроса подтвердите компиляцию пакетов из исходных кодов.
install.packages("devtools")
devtools::install_github('rstudio/sparklyr', ref = 'v1.7.0', upgrade = 'always', repos = 'https://cran.microsoft.com/snapshot/2021-06-11/')
Подключение к Spark в кластере больших данных
Спарклир можно использовать для подключения от клиента к кластеру больших данных с помощью Livy и шлюза HDFS/Spark.
В RStudio создайте скрипт R и подключитесь к Spark, как показано в следующем примере:
Tip
Для значений <AZDATA_USERNAME> и <AZDATA_PASSWORD> используйте имя пользователя и пароль, которые вы задали во время развертывания кластера больших данных.
Начиная с SQL Server 2019 (15.x) CU 5, при развертывании нового кластера с базовой проверкой подлинности все конечные точки, включая шлюз, используют AZDATA_USERNAME и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до CU 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям с помощью проверки подлинности Active Directory. См. учетные данные для доступа к службам через конечную точку шлюза в заметках о выпуске.
<IP> и <PORT> значения смотрите в документации по подключению к кластеру больших данных.
library(sparklyr)
library(dplyr)
library(DBI)
#Specify the Knox username and password
config <- livy_config(user = "<AZDATA_USERNAME>", password = "<AZDATA_PASSWORD>")
httr::set_config(httr::config(ssl_verifypeer = 0L, ssl_verifyhost = 0L))
sc <- spark_connect(master = "https://<IP>:<PORT>/gateway/default/livy/v1",
method = "livy",
config = config)
Запуск запросов sparklyr
После подключения к Spark можно запустить sparklyr. В следующем примере выполняется запрос к набору iris данных с помощью sparklyr:
iris_tbl <- copy_to(sc, iris)
iris_count <- dbGetQuery(sc, "SELECT COUNT(*) FROM iris")
iris_count
Распределенные вычисления R
Одной из функций sparklyr является возможность распределения вычислений R с spark_apply.
Так как кластеры больших данных используют подключения Livy, необходимо задать packages = FALSE в вызове spark_apply. Дополнительные сведения см. в разделе Livy документации sparklyr по распределённым вычислениям на R. С помощью этого параметра можно использовать только пакеты R, которые уже установлены в кластере Spark в коде R, переданном в spark_apply. В следующем примере показана эта функция:
iris_tbl %>% spark_apply(function(e) nrow(e), names = "nrow", group_by = "Species", packages = FALSE)
Next steps
Дополнительные сведения о кластерах больших данных см. в статье "Что такое кластеры больших данных SQL Server 2019".