Teilen über


Spark-Bibliotheksverwaltung

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.

Dieser Artikel enthält einen Leitfaden zum Importieren und Installieren von Paketen für eine Spark-Sitzung über Sitzungs- und Notebook-Konfigurationen.

Integrierte Tools

Basispakete für Scala Spark (Scala 2.12) und Hadoop.

PySpark (Python 3.8). Pandas, Sklearn, Numpy und andere Pakete für Datenverarbeitung und maschinelles Lernen.

MRO 3.5.2-Pakete. Sparklyr und SparkR für R Spark-Workloads.

Installieren von Paketen aus einem Maven-Repository im Spark-Cluster zur Laufzeit

Maven-Pakete können mithilfe einer Notebook-Zellenkonfiguration zu Beginn einer Spark-Sitzung im Spark-Cluster installiert werden. Führen Sie hierzu vor Beginn einer Spark-Sitzung in Azure Data Studio folgenden Code aus:

%%configure -f \
{"conf": {"spark.jars.packages": "com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.1"}}

Mehrere Pakete und zusätzliche Spark-Konfigurationen

In der folgenden Notebookbeispielzelle sind mehrere Pakete definiert:

%%configure -f \
{
    "conf": {
        "spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.9.4,com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.1",
        "spark.jars.repositories":"https://mmlspark.azureedge.net/maven"
    }
}

Installieren von Python-Paketen mit PySpark zur Laufzeit

Die Paketverwaltung auf Sitzungs- und Auftragsebene garantiert Konsistenz und Isolierung der Bibliothek. Die Konfiguration ist eine Spark-Standardbibliothekskonfiguration, die auf Livy-Sitzungen angewendet werden kann. azdata spark unterstützt diese Konfigurationen. Die folgenden Beispiele sind als konfigurierte Zellen in Azure Data Studio-Notebooks dargestellt, die nach dem Anfügen an einen Cluster mit dem PySpark-Kernel ausgeführt werden müssen.

Wenn die Konfiguration "spark.pyspark.virtualenv.enabled" : "true" nicht festgelegt ist, verwendet die Sitzung den Python-Standard des Clusters und die installierten Bibliotheken.

Sitzungs-/Auftragskonfiguration mithilfe von „requirements.txt“

Geben Sie den Pfad zu einer „requirements.txt“-Datei in HDFS zur Verwendung als Referenz für zu installierende Pakete an.

%%configure -f \
{
    "conf": {
        "spark.pyspark.virtualenv.enabled" : "true",
        "spark.pyspark.virtualenv.python_version": "3.8",
        "spark.pyspark.virtualenv.requirements" : "hdfs://user/project-A/requirements.txt"
    }
}

Sitzungs-/Auftragskonfiguration mit unterschiedlichen Python-Versionen

Erstellen Sie eine virtuelle Umgebung wie Conda ohne „requirements.txt“-Datei, und fügen Sie Pakete dynamisch während der Spark-Sitzung hinzu.

%%configure -f \
{
    "conf": {
        "spark.pyspark.virtualenv.enabled" : "true",
        "spark.pyspark.virtualenv.python_version": "3.7"
    }
}

Bibliotheksinstallation

Führen Sie den Befehl sc.install_packages aus, um Bibliotheken dynamisch in Ihrer Sitzung zu installieren. Die Bibliotheken werden in den Treiber und auf allen Executorknoten installiert.

sc.install_packages("numpy==1.11.0")
import numpy as np

Es ist auch möglich, mehrere Bibliotheken mit demselben Befehl über ein Array zu installieren.

sc.install_packages(["numpy==1.11.0", "xgboost"])
import numpy as np
import xgboost as xgb

Importieren einer JAR-Datei aus HDFS zur Verwendung zur Laufzeit

Importieren Sie eine JAR-Datei zur Laufzeit über eine Azure Data Studio-Notebook-Zellenkonfiguration.

%%configure -f
{"conf": {"spark.jars": "/jar/mycodeJar.jar"}}

Nächste Schritte

Weitere Informationen zu Big Data-Clustern für SQL Server und zugehörige Szenarios finden Sie unter Big Data-Cluster für SQL Server.