Verwenden von sparklyr in SQL Server-Big Data-Clustern
Gilt für: SQL Server 2019 (15.x)
Wichtig
Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.
sparklyr stellt eine R-Schnittstelle für Apache Spark bereit. sparklyr ist eine beliebte Möglichkeit für R-Entwickler, Spark zu verwenden. Dieser Artikel beschreibt die Verwendung von sparklyr in SQL Server 2019: Big Data-Cluster mit RStudio.
Voraussetzungen
Installieren von R und RStudio Desktop
Installieren und konfigurieren Sie RStudio Desktop mithilfe der folgenden Schritte:
Wenn Sie auf einem Windows-Client arbeiten, laden Sie R 3.6.3 herunter, und installieren Sie diese Version. Laden Sie außerdem RTools 3.5 herunter, und installieren Sie dieses Plug-In. Stellen Sie sicher, dass Sie den binären RTools-Ordner in Ihrer PATH-Umgebungsvariable konfigurieren.
Warnung
R-Version 4.x und andere sparklyr-Versionen als die unten angegebenen funktionieren erwiesenermaßen nicht mit SQL Server-Big Data-Cluster ab CU13.
Laden Sie RStudio Desktop herunter, und führen Sie die Anwendung aus. Optional funktionieren alle Beispiele in der R-Shell.
Wenn die Installation abgeschlossen ist, führen Sie die folgenden Befehle in RStudio Desktop oder in der R-Shell aus, um die erforderlichen Pakete zu installieren. Bestätigen Sie nach Aufforderung das Kompilieren von Paketen aus der Quelle.
install.packages("devtools")
devtools::install_github('rstudio/sparklyr', ref = 'v1.7.0', upgrade = 'always', repos = 'https://cran.microsoft.com/snapshot/2021-06-11/')
Herstellen einer Verbindung mit Spark in einem Big Data-Cluster
Sie können sparklyr verwenden, um über Livy und das HDFS/Spark-Gateway eine Verbindung von einem Client mit dem Big Data-Cluster herzustellen.
Erstellen Sie in RStudio ein R-Skript, und stellen Sie eine Verbindung mit Spark her, wie im folgenden Beispiel gezeigt:
Tipp
Verwenden Sie für die Werte <AZDATA_USERNAME>
und <AZDATA_PASSWORD>
den Benutzernamen und das Kennwort, das Sie bei der Bereitstellung Ihres Big Data-Clusters festgelegt haben.
Beginnend mit SQL Server 2019 (15.x) CU 5 verwenden alle Endpunkte einschließlich Gateway AZDATA_USERNAME
und AZDATA_PASSWORD
, wenn Sie einen neuen Cluster mit Standardauthentifizierung bereitstellen. Endpunkte auf Clustern, die ein Upgrade auf CU 5 erhalten, verwenden weiterhin root
als Nutzername für die Verbindung mit dem Gatewayendpunkt. Diese Änderung gilt nicht für Bereitstellungen, die die Active Directory-Authentifizierung verwenden. Weitere Informationen finden Sie unter Anmeldeinformationen für den Zugriff auf Dienste über den Gatewayendpunkt in den Versionshinweisen.
Informationen zu den Werten für <IP>
und <PORT>
finden Sie in der Dokumentation zum Herstellen einer Verbindung mit einem Big Data-Cluster.
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)
Ausführen von sparklyr-Abfragen
Nach dem Herstellen der Verbindung mit Spark können Sie sparklyr ausführen. Das folgende Beispiel führt über sparklyr eine Abfrage des iris
-Datasets aus:
iris_tbl <- copy_to(sc, iris)
iris_count <- dbGetQuery(sc, "SELECT COUNT(*) FROM iris")
iris_count
Verteilte R-Berechnungen
Ein Feature von sparklyr ist die Möglichkeit, spark_apply zum Verteilen von R-Berechnungen zu verwenden.
Da Big Data-Cluster Livy-Verbindungen verwenden, müssen Sie packages = FALSE
im Aufruf von spark_apply festlegen. Weitere Informationen finden Sie im Abschnitt zu Livy in der sparklyr-Dokumentation zu verteilten R-Berechnungen. Mit dieser Einstellung können Sie in dem an spark_apply übergebenen R-Code nur die R-Pakete verwenden, die bereits in Ihrem Spark-Cluster installiert sind. Das folgende Beispiel veranschaulicht diese Funktion:
iris_tbl %>% spark_apply(function(e) nrow(e), names = "nrow", group_by = "Species", packages = FALSE)
Nächste Schritte
Weitere Informationen zu Big Data-Clustern finden Sie unter Was sind SQL Server 2019: Big Data-Cluster?.