Freigeben über


Verwenden von sparklyr in SQL Server-Big Data-Clustern

Gilt für: SQL Server 2019 (15.x)

Important

Die Big Data Cluster von Microsoft SQL Server 2019 werden eingestellt. Der Support für SQL Server 2019 Big Data Cluster endete am 28. Februar 2025. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und den 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.

Prerequisites

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.

    Warning

    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:

Tip

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)

Next steps

Weitere Informationen zu Big Data-Clustern finden Sie unter Was sind SQL Server 2019: Big Data-Cluster?.