Uso de sparklyr en clústeres de macrodatos de SQL Server
Se aplica a: SQL Server 2019 (15.x)
Importante
El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.
Sparklyr proporciona una interfaz de R para Apache Spark. Sparklyr es una forma popular para que los desarrolladores de R usen Spark. En este artículo se describe cómo usar sparklyr en Clústeres de macrodatos de SQL Server 2019 mediante RStudio.
Prerequisites
Instalación de R y RStudio Desktop
Instale y configure RStudio Desktop con los pasos siguientes:
Si ejecuta un cliente Windows, descargue e instale R 3.6.3. Además, descargue e instale RTools 3.5. Asegúrese de configurar la carpeta binaria RTools en la variable de entorno PATH.
Advertencia
Se ha comprobado que la versión 4.x de R y las versiones de sparklyr distintas de la especificada a continuación no funcionan a partir de los clústeres de macrodatos de SQL Server CU13.
Descargue e instale RStudio Desktop. Opcionalmente, todos los ejemplos funcionan en el shell de R.
Una vez finalizada la instalación, ejecute los comandos siguientes dentro de RStudio Desktop o del shell de R para instalar los paquetes necesarios. Cuando se le pida, confirme para compilar paquetes desde el origen.
install.packages("devtools")
devtools::install_github('rstudio/sparklyr', ref = 'v1.7.0', upgrade = 'always', repos = 'https://cran.microsoft.com/snapshot/2021-06-11/')
Conexión a Spark en un clúster de macrodatos
Puede usar sparklyr para conectarse desde un cliente al clúster de macrodatos mediante Livy y la puerta de enlace de HDFS/Spark.
En RStudio, cree un script de R y conéctese a Spark como en el ejemplo siguiente:
Sugerencia
Para los valores <AZDATA_USERNAME>
y <AZDATA_PASSWORD>
, use el nombre de usuario y la contraseña que haya establecido durante la implementación del clúster de macrodatos.
A partir de SQL Server 2019 (15.x) CU 5, al implementar un nuevo clúster con autenticación básica todos los puntos de conexión incluida la puerta de enlace utilizan AZDATA_USERNAME
y AZDATA_PASSWORD
. Los puntos de conexión de los clústeres que se actualizan a CU 5 continúan usando root
como nombre de usuario para conectarse al punto de conexión de puerta de enlace. Este cambio no se aplica a las implementaciones que utilizan la autenticación de Active Directory. Consulte Credenciales para acceder a los servicios a través del punto de conexión de puerta de enlace en las notas de la versión.
Para los valores <IP>
y <PORT>
, vea la documentación sobre cómo conectarse a un clúster de macrodatos.
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)
Ejecución de consultas de sparklyr
Después de conectarse a Spark, puede ejecutar sparklyr. En el ejemplo siguiente se realiza una consulta en el conjunto de datos iris
mediante sparklyr:
iris_tbl <- copy_to(sc, iris)
iris_count <- dbGetQuery(sc, "SELECT COUNT(*) FROM iris")
iris_count
Cálculos de R distribuidos
Una característica de sparklyr es la capacidad de distribuir cálculos de R con spark_apply.
Como los clústeres de macrodatos usan conexiones Livy, debe establecer packages = FALSE
en la llamada a spark_apply. Para obtener más información, vea la sección sobre Livy de la documentación de sparklyr sobre cálculos de R distribuidos. Con esta configuración, solo puede usar los paquetes de R que ya estén instalados en el clúster de Spark en el código de R que se pasa a spark_apply. En el ejemplo siguiente se muestra esta funcionalidad:
iris_tbl %>% spark_apply(function(e) nrow(e), names = "nrow", group_by = "Species", packages = FALSE)
Pasos siguientes
Vea ¿Qué son los Clústeres de macrodatos de SQL Server 2019? para obtener más información sobre los clústeres de macrodatos.