VS コード、Jupyter Notebooks、またはターミナルから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 コマンドを使用して接続を追加するには、次のコマンドを実行します:
追加コマンドプロンプトに従って接続を定義します。
必ず接続名に
spark-connectを指定してください。このコマンドは次の例のように、
config.tomlファイルに接続を追加します。以下のコマンドを実行して、接続が機能することを確認します。
Snowflake CLI を使用して接続を追加した場合は、この方法でテストできます。
接続ファイルを手動で書き込んで接続を追加する¶
Snowflake上でコードが Snowpark Connect for Spark に接続できるように、 connections.toml ファイルを手動で記述または更新できます。
次のコマンドを実行して、
connections.tomlファイルでは、所有者(ユーザー)のみが読み取りおよび書き込みアクセスできることを確認します。次の例の接続プロパティを使用した
[spark-connect]接続が含まれるように、connections.tomlファイルを編集します。値を独自の接続仕様に置き換えてください。
Snowpark Connect for Spark をインストールする¶
Pythonパッケージとして Snowpark Connect for Spark をインストールできます。
Pythonの仮想環境を作成します。
python3 --versionを実行して、Pythonバージョンが3.10以降で3.13以前であることを確認します。Snowpark Connect for Spark パッケージをインストールします。
Snowpark Connect for Spark サーバーを開始して Snowpark Connect for Spark セッションを作成するには、Pythonコードを追加します。
クライアントからPythonコードを実行する¶
認証済みの接続が確立されると、通常と同様にコードを書き込みできます。
PySpark クライアントライブラリを使用して、Snowpark Connect for Spark に接続する PySpark コードを実行できます。
クライアントからScalaコードを実行する¶
Spark Connectクライアントライブラリを使用して、 |spconnect|に接続するScalaアプリケーションを実行できます。
このガイドでは、Snowpark Connectを設定し、Scalaアプリケーションを Snowpark Connect for Spark サーバーに接続する手順について説明します。
ステップ1: Snowpark Connect for Spark 環境を設定する¶
次のトピックで説明されているステップを使用して、環境を設定します。
ステップ2: Snowpark Connect for Spark サーバースクリプトを作成してサーバーを起動する¶
Pythonスクリプトを作成して Snowpark Connect for Spark サーバーを起動します。
Snowpark Connect for Spark サーバーを起動します。
ステップ3:ステップ3: Scalaアプリケーションを設定する¶
Spark Connectクライアントの依存関係をbuild.sbtファイルに追加します。
Scalaコードを実行して Snowpark Connect for Spark サーバーに接続します。
アプリケーションをコンパイルして実行します。
Snowpark Connect for Spark でのScala UDF サポート¶
ユーザー定義関数またはカスタムコードを使用する場合は、以下のいずれかを実行します。
クラスファイルを監視およびアップロードするためのクラス検索者を登録します。
必要に応じて、JAR 依存関係をアップロードします。クラスファインダーが使用されていない場合は、ワークロード JAR 自体を含めることができます。
ステージングされた JAR を使用します。
Scala 2.13の使用¶
デフォルトでは Snowpark Connect for Spark はScala 2.12を使用します。Scala 2.13で構築されたワークロードは、「snowpark.connect.scala.version」設定オプションを使用してScalaバージョンを指定する必要があります。
トラブルシューティング Snowpark Connect for Spark インストール¶
次のチェックリストを使用して、Snowpark Connect for Spark のインストールと使用のトラブルシューティングを行うことができます。
JavaおよびPythonが :ref:` 同じアーキテクチャに基づく <label-snowpark_connect_jupyter_prereq>` ことを確認します。
Snowpark Connect for Spark をインストールする で説明されているように、最新の Snowpark Connect for Spark パッケージファイルを作成します。
PySpark コードを使用した
Pythonコマンドが、ローカル実行に対して正しく動作すること、つまり、Snowflakeへの接続なしで実行されることを確認します。たとえば、次のようなコマンドを実行します。
ソースクライアントを開く¶
標準のすぐに使えるオープンソースソフトウェア(OSS)Sparkクライアントパッケージ(PySpark、JavaまたはScala用のSparkクライアントなど)を、Jupyterノートブックや VS コードなど好みのローカル環境から使用できます。このようにして、Snowflakeに固有のパッケージのインストールを回避できます。
これは、Sparkコードをローカルで記述し、そのコードでSnowflakeのコンピューティングリソースとエンタープライズガバナンスを使用する場合に役立つ可能性があります。このシナリオでは、プログラムによるアクセストークン(PATs)を使用して認証と承認を実行します。
以下のセクションでは、インストール、構成、認証について説明します。接続を検証するための簡単な PySpark 例も見つかります。
ステップ1:必要なパッケージをインストールする¶
pysparkをインストールします。Snowflakeパッケージをインストールする必要はありません。
ステップ2: 設定と認証¶
プログラムによるアクセストークン(PAT)を生成します。
詳細については、次のトピックをご参照ください。
次の例では、ユーザー
sysadminに対してTEST_PATという名前の PAT を追加し、有効期限を30日に設定します。SnowflakeのSpark Connectホスト URL を見つけます。
Snowflakeで次の SQL を実行し、アカウントのホスト名を検索します。
ステップ3:ステップ3: Spark Connectサーバーに接続する¶
Spark Connectサーバーに接続するには、次のようなコードを使用します。