Utiliser sparklyr dans un cluster Big Data SQL Server

S’applique à : SQL Server 2019 (15.x)

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

Sparklyr fournit une interface R pour Apache Spark. Sparklyr est un moyen populaire permettant aux développeurs R d’utiliser Spark. Cet article explique comment utiliser sparklyr dans des Clusters de Big Data SQL Server 2019 à l’aide de RStudio.

Conditions préalables requises

Installez le Bureau R et RStudio

Installez et configurez RStudio Desktop en procédant comme suit :

  1. Si vous exécutez un client Windows, téléchargez et installez R 3.6.3. Vous devez aussi télécharger et installer RTools 3.5. Veillez à configurer le dossier binaire RTools sur votre variable d’environnement PATH.

    Avertissement

    La version R 4.x et les versions sparklyr autres que celles spécifiées ci-dessous sont vérifiées pour ne pas fonctionner à partir de Clusters Big Data CU13 SQL Server.

  2. Téléchargez et installez RStudio Desktop. Si vous le souhaitez, tous les échantillons fonctionnent sur l’interpréteur de commandes R.

  3. Une fois l’installation terminée, exécutez les commandes suivantes au sein de RStudio Desktop ou du shell R pour installer les packages requis. Lorsque vous y êtes invité, confirmez la compilation des packages à partir de la source.

install.packages("devtools")
devtools::install_github('rstudio/sparklyr', ref = 'v1.7.0', upgrade = 'always', repos = 'https://cran.microsoft.com/snapshot/2021-06-11/')

Se connecter à Spark dans un cluster Big Data

Vous pouvez utiliser sparklyr pour vous connecter à partir d’un client au cluster Big Data à l’aide de Livy et de la passerelle HDFS/Spark.

Dans RStudio, créez un script R et connectez-vous à Spark comme dans l’exemple suivant :

Conseil

Pour les valeurs <AZDATA_USERNAME> et <AZDATA_PASSWORD>, utilisez le nom d’utilisateur et le mot de passe que vous définissez lors du déploiement du cluster Big Data.

À partir de SQL Server 2019 (15.x) CU 5, lorsque vous déployez un nouveau cluster avec l’authentification de base, tous les points de terminaison, dont la passerelle, utilisent AZDATA_USERNAME et AZDATA_PASSWORD. Les points de terminaison sur les clusters mis à niveau vers la CU 5 continuent à utiliser root comme nom d’utilisateur pour se connecter au point de terminaison de la passerelle. Cette modification ne s’applique pas aux déploiements utilisant l’authentification Active Directory. Voir Informations d’identification pour l’accès aux services via le point de terminaison de passerelle dans les notes de publication.

Pour les valeurs <IP> et <PORT>, consultez la documentation sur la connexion à un cluster Big Data.

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)

Exécuter des requêtes sparklyr

Après vous être connecté à Spark, vous pouvez exécuter sparklyr. L’exemple suivant exécute une requête sur un jeu de données iris à l’aide de sparklyr :

iris_tbl <- copy_to(sc, iris)

iris_count <- dbGetQuery(sc, "SELECT COUNT(*) FROM iris")

iris_count

Calculs R distribués

L’une des fonctionnalités de sparklyr est la capacité à distribuer des calculs R avec spark_apply.

Comme les clusters Big Data utilisent des connexions Livy, vous devez définir packages = FALSE dans l’appel à spark_apply. Pour plus d’informations, consultez la section Livy de la documentation sparklyr sur les calculs R distribués. Avec ce paramètre, vous ne pouvez utiliser que les packages R déjà installés sur votre cluster Spark dans le code R passé à spark_apply. L’exemple suivant illustre cette fonctionnalité :

iris_tbl %>% spark_apply(function(e) nrow(e), names = "nrow", group_by = "Species", packages = FALSE)

Étapes suivantes

Pour plus d’informations sur les clusters Big Data, consultez Que sont les Clusters de Big Data SQL Server 2019 ?.