Ausführen von Spark-Workloads von einem Drittanbieter-Client aus¶
Sie können Spark-Workloads interaktiv über Jupyter Notebooks, VS Code oder eine beliebige Python-basierte Weboberfläche ausführen, ohne dass ein Spark-Cluster verwaltet werden muss. Die Workloads werden auf der Snowflake-Infrastruktur ausgeführt.
Sie können zum Beispiel folgende Aufgaben ausführen:
Stellen Sie sicher, dass Sie die Voraussetzungen haben.
Richten Sie Ihre Umgebung für die Verbindung mit Snowpark Connect for Spark auf Snowflake ein.
Installieren Sie Snowpark Connect for Spark.
Führen Sie PySpark-Code von Ihrem Client aus in Snowflake aus.
Voraussetzungen¶
Prüfen Sie, ob Ihre Python- und Java-Installationen auf derselben Computerarchitektur basieren. Wenn Python beispielsweise auf arm64 basiert, muss Java ebenfalls darauf basieren (und nicht z. B. auf x86_64).
Einrichten Ihrer Umgebung¶
Sie können Ihre Entwicklungsumgebung einrichten, indem Sie dafür sorgen, dass Ihr Code mit Snowpark Connect for Spark auf Snowflake verbunden werden kann. Um eine Verbindung zu Snowflake herzustellen, verwendet der Clientcode eine .toml
-Datei mit Verbindungsdetails.
Wenn Sie Snowflake CLI installiert haben, können Sie damit eine Verbindung definieren. Andernfalls können Sie die Verbindungsparameter manuell in eine config.toml
-Datei schreiben.
Hinzufügen von Verbindungen mit Snowflake CLI¶
Sie können mit Snowflake CLI Verbindungseigenschaften hinzufügen, mit denen Snowpark Connect for Spark eine Verbindung zu Snowflake herstellen kann. Ihre Änderungen werden in einer config.toml
-Datei gespeichert.
Führen Sie den folgenden Befehl aus, um eine Verbindung über den snow connection-Befehl :
add
hinzuzufügen.snow connection add
Folgen Sie den Aufforderungen, um eine Verbindung zu definieren.
Geben Sie
spark-connect
als Verbindungsnamen an.Dieser Befehl fügt eine Verbindung zu Ihrer:file:
config.toml
-Datei hinzu, wie im folgenden Beispiel:[connections.spark-connect] host = "example.snowflakecomputing.com" port = 443 account = "example" user = "test_example" password = "password" protocol = "https" warehouse = "example_wh" database = "example_db" schema = "public"
Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Verbindung funktioniert.
Sie können die Verbindung auf diese Weise testen, nachdem Sie sie mit Snowflake CLI hinzugefügt haben.
snow connection list snow connection test --connection spark-connect
Hinzufügen einer Verbindung durch manuelles Schreiben einer Verbindungsdatei¶
Sie können eine connections.toml
-Datei manuell schreiben oder aktualisieren, damit Ihr Code eine Verbindung zu Snowpark Connect for Spark auf Snowflake herstellen kann.
Führen Sie den folgenden Befehl aus, damit Ihre
connections.toml
-Datei nur dem Eigentümer (Benutzer) Lese- und Schreibzugriff gewährt.chmod 0600 "~/.snowflake/connections.toml"
Bearbeiten Sie die
connections.toml
-Datei so, dass sie eine[spark-connect]
-Verbindung mit den Verbindungseigenschaften im folgenden Beispiel enthält.Ersetzen Sie die Werte durch Ihre eigenen Verbindungsspezifikationen.
[spark-connect] host="my_snowflake_account.snowflakecomputing.com" account="my_snowflake_account" user="my_user" password="&&&&&&&&" warehouse="my_wh" database="my_db" schema="public"
Snowpark Connect for Spark installieren¶
Sie können Snowpark Connect for Spark als Python-Paket installieren.
Erstellen Sie eine virtuelle Umgebung für Python.
Sie können zum Beispiel Conda verwenden, wie im folgenden Beispiel.
conda create -n xxxx pip python=3.12 conda activate xxxx
Installieren Sie das Snowpark Connect for Spark-Paket.
pip install --upgrade --force-reinstall snowpark-connect
Fügen Sie Python-Code hinzu, um einen|spconnect|-Server zu starten, und erstellen Sie eine Snowpark Connect for Spark-Sitzung.
import os import snowflake.snowpark from snowflake import snowpark_connect # Import snowpark_connect before importing pyspark libraries from pyspark.sql.types import Row os.environ["SPARK_CONNECT_MODE_ENABLED"] = "1" snowpark_connect.start_session() # Start the local |spconnect| session spark = snowpark_connect.get_session()
Ausführen von PySpark-Code auf Ihrem Client¶
Sobald Sie eine authentifizierte Verbindung eingerichtet haben, können Sie wie gewohnt PySpark-Code verfassen.
Sie können etwa das folgende einfache Beispiel ausführen:
from pyspark.sql import Row
df = spark.createDataFrame([
Row(a=1, b=2.),
Row(a=2, b=3.),
Row(a=4, b=5.),])
print(df.count())
Problembehandlung bei einer Snowpark Connect for Spark-Installation¶
Mit der folgenden Liste von Prüfungen können Sie Fehler in der Installation von Snowpark Connect beheben und das Tool nutzen.
Stellen Sie sicher, dass Java und Python auf der gleichen Architektur basieren.
Verwenden Sie die aktuelle Snowpark Connect-Paketdatei, wie unter Snowpark Connect for Spark installieren beschrieben.
Prüfen Sie, ob der python-Befehl mit PySpark-Code korrekt für die lokale Ausführung funktioniert, d. h. ohne Snowflake-Konnektivität.
Führen Sie beispielsweise einen Befehl wie den folgenden aus:
python your_pyspark_file.py