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:

  1. 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.

  2. Laden Sie RStudio Desktop herunter, und führen Sie die Anwendung aus. Optional funktionieren alle Beispiele in der R-Shell.

  3. 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?.