Verwenden von sparklyr in SQL Server-Big Data-ClusternUse sparklyr in SQL Server big data cluster

Anwendungsbereich:Applies to: JaSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x)Anwendungsbereich:Applies to: JaSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x)

sparklyr stellt eine R-Schnittstelle für Apache Spark bereit.Sparklyr provides an R interface for Apache Spark. sparklyr ist eine beliebte Möglichkeit für R-Entwickler, Spark zu verwenden.Sparklyr is a popular way for R developers to use Spark. Dieser Artikel beschreibt die Verwendung von sparklyr in SQL Server 2019: Big Data-ClusterSQL Server 2019 Big Data Clusters mit RStudio.This article describes how to use sparklyr in a SQL Server 2019: Big Data-ClusterSQL Server 2019 Big Data Clusters using RStudio.

VoraussetzungenPrerequisites

Installieren von RStudio DesktopInstall RStudio Desktop

Installieren und konfigurieren Sie RStudio Desktop mithilfe der folgenden Schritte:Install and configure RStudio Desktop with the following steps:

  1. Wenn Sie auf einem Windows-Client arbeiten, laden Sie R 3.4.4 herunter, und führen Sie die Anwendung aus.If you are running on a Windows client, download and install R 3.4.4.

  2. Laden Sie RStudio Desktop herunter, und führen Sie die Anwendung aus.Download and install RStudio Desktop.

  3. Wenn die Installation abgeschlossen ist, führen Sie die folgenden Befehle in RStudio Desktop aus, um die erforderlichen Pakete zu installieren:After installation completes, run the following commands inside of RStudio Desktop to install the required packages:

    install.packages("DBI", repos = "https://cran.microsoft.com/snapshot/2019-01-01")
    install.packages("dplyr", repos = "https://cran.microsoft.com/snapshot/2019-01-01")
    install.packages("sparklyr", repos = "https://cran.microsoft.com/snapshot/2019-01-01")
    

Herstellen einer Verbindung mit Spark in einem Big Data-ClusterConnect to Spark in a 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.You can use sparklyr to connect from a client to the big data cluster using Livy and the HDFS/Spark gateway.

Erstellen Sie in RStudio ein R-Skript, und stellen Sie eine Verbindung mit Spark her, wie im folgenden Beispiel gezeigt:In RStudio, create an R script and connect to Spark as in the following example:

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.For the <AZDATA_USERNAME> and <AZDATA_PASSWORD> values, use the username and password you set during the big data cluster deployment.

Beginning with SQL Server 2019 CU5, when you deploy a new cluster with basic authentication all endpoints including gateway use AZDATA_USERNAME and AZDATA_PASSWORD. Endpoints on clusters that are upgraded to CU5 continue to use root as username to connect to gateway endpoint. This change does not apply to deployments using Active Directory authentication. See Credentials for accessing services through gateway endpoint in the release notes.

Informationen zu den Werten für <IP> und <PORT> finden Sie in der Dokumentation zum Herstellen einer Verbindung mit einem Big Data-Cluster.For the <IP> and <PORT> values, see the documentation on connecting to a 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-AbfragenRun sparklyr queries

Nach dem Herstellen der Verbindung mit Spark können Sie sparklyr ausführen.After connecting to Spark, you can run sparklyr. Das folgende Beispiel führt über sparklyr eine Abfrage des iris-Datasets aus:The following example performs a query on iris dataset using sparklyr:

iris_tbl <- copy_to(sc, iris)

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

iris_count

Verteilte R-BerechnungenDistributed R computations

Ein Feature von sparklyr ist die Möglichkeit, spark_apply zum Verteilen von R-Berechnungen zu verwenden.One feature of sparklyr is the ability to distribute R computations with spark_apply.

Da Big Data-Cluster Livy-Verbindungen verwenden, müssen Sie packages = FALSE im Aufruf von spark_apply festlegen.Because big data clusters use Livy connections, you must set packages = FALSE in the call to spark_apply. Weitere Informationen finden Sie im Abschnitt zu Livy in der sparklyr-Dokumentation zu verteilten R-Berechnungen.For more information, see the Livy section of the sparklyr documentation on distributed R computations. 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.With this setting, you can only use the R packages that are already installed on your Spark cluster in the R code passed to spark_apply. Das folgende Beispiel veranschaulicht diese Funktion:The following example demonstrates this functionality:

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

Nächste SchritteNext steps

Weitere Informationen zu Big Data-Clustern finden Sie unter Was sind SQL Server 2019: Big Data-ClusterSQL Server 2019 Big Data Clusters?.For more information about big data clusters, see What are SQL Server 2019: Big Data-ClusterSQL Server 2019 Big Data Clusters.