サードパーティクライアントからSparkワークロードを実行¶
Jupyterノートブック、 VS コード、またはPythonベースのインターフェースからSparkワークロードをインタラクティブに実行できます。Sparkクラスターを管理する必要はありません。ワークロードはSnowflakeインフラストラクチャ上で実行されます。
たとえば、次のタスクを実行できます。
前提条件があることを確認します。
Snowflake上の Snowpark Connect for Spark と接続するための環境を設定します。
Snowpark Connect for Spark をインストールします。
Snowflakeで実行するクライアントからの PySpark コードを実行します。
前提条件¶
PythonとJavaのインストールが同じコンピューターアーキテクチャに基づいていることを確認します。たとえば、 Pythonが arm64 に基づいている場合、Java も arm64 である必要があります(例:x86_64ではない)。
環境の設定¶
コードがSnowflake上の Snowpark Connect for Spark に接続できるようにすることで、開発環境をセットアップできます。Snowflakeクライアントコードに接続するには、接続の詳細を含む .toml
ファイルを使用します。
Snowflake CLI がインストールされている場合、それを使用して接続を定義できます。それ以外の場合は、 config.toml
ファイルに接続パラメーターを手動で書き込むことができます。
Snowflake CLI を使用して接続を追加します。¶
Snowpark Connect for Spark がSnowflakeに接続するために使える接続プロパティを追加するために、 Snowflake CLI を使用できます。変更は config.toml
ファイルに保存されます。
snow connection コマンドを使用して接続を追加するには、次のコマンドを実行します:
追加
コマンドsnow connection add
プロンプトに従って接続を定義します。
必ず接続名に
spark-connect
を指定してください。このコマンドは次の例のように、
config.toml
ファイルに接続を追加します。[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"
以下のコマンドを実行して、接続が機能することを確認します。
Snowflake CLI を使用して接続を追加した場合は、この方法でテストできます。
snow connection list snow connection test --connection spark-connect
接続ファイルを手動で書き込んで接続を追加する¶
Snowflake上でコードが Snowpark Connect for Spark に接続できるように、 connections.toml
ファイルを手動で記述または更新できます。
次のコマンドを実行して、
connections.toml
ファイルでは、所有者(ユーザー)のみが読み取りおよび書き込みアクセスできることを確認します。chmod 0600 "~/.snowflake/connections.toml"
次の例の接続プロパティを使用した
[spark-connect]
接続が含まれるように、connections.toml
ファイルを編集します。値を独自の接続仕様に置き換えてください。
[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 をインストールする¶
Pythonパッケージとして Snowpark Connect for Spark をインストールできます。
Pythonの仮想環境を作成します。
たとえば、次の例のようにCondaを使用できます。
conda create -n xxxx pip python=3.12 conda activate xxxx
Snowpark Connect for Spark パッケージをインストールします。
pip install --upgrade --force-reinstall snowpark-connect
Snowpark Connect for Spark サーバーを開始して Snowpark Connect for Spark セッションを作成するには、Pythonコードを追加します。
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()
クライアントからの PySpark コードを実行する¶
認証済みの接続が確立されると、通常と同様に PySpark コードを書き込みできます。
例えば、次の簡単な例を実行できます。
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())
トラブルシューティング Snowpark Connect for Spark インストール¶
次のチェックリストを使用して、Snowpark Connectのインストールと使用のトラブルシューティングを行うことができます。
JavaおよびPythonが :ref:` 同じアーキテクチャに基づく <label-snowpark_connect_jupyter_prereq>` ことを確認します。
Snowpark Connect for Spark をインストールする で説明されているように、最新のSnowpark Connectパッケージファイルを使用します。
PySpark コードを使用した
Python
コマンドが、ローカル実行に対して正しく動作すること、つまり、Snowflakeへの接続なしで実行されることを確認します。たとえば、次のようなコマンドを実行します。
python your_pyspark_file.py