Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
Это важно
Надстройка "Кластеры больших данных Microsoft SQL Server 2019" будет прекращена. Поддержка кластеров больших данных SQL Server 2019 завершится 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на этой платформе, а программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений для SQL Server до этого времени. Для получения дополнительной информации см. запись блога об объявлении и параметры работы с большими данными на платформе Microsoft SQL Server.
Sparklyr предоставляет интерфейс R для Apache Spark. Sparklyr — это популярный способ для разработчиков R использовать Spark. В этой статье описывается использование sparklyr в кластерах больших данных SQL Server 2019 с помощью RStudio.
Предпосылки
Установка R и RStudio Desktop
Установите и настройте RStudio Desktop , выполнив следующие действия.
Если вы работаете на клиенте Windows, скачайте и установите R 3.6.3. Кроме того, скачайте и установите RTools 3.5. Обязательно настройте двоичную папку RTools в переменной среды PATH.
Предупреждение
Версии 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, как показано в следующем примере:
Подсказка
Для значений <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)
Дальнейшие шаги
Дополнительные сведения о кластерах больших данных см. в статье "Что такое кластеры больших данных SQL Server 2019".