Snowpark Submit リファレンス¶
Snowpark Submit を使用すると、なじみのあるSparkセマンティクスを使用して、Snowflakeで非インタラクティブなバッチ指向のSparkワークロードを実行できます。
注釈
snowpark-submit は、spark-submit と同じ機能の多くをサポートしています。ただし、SnowflakeでSparkワークロードを実行する場合に必要ないため、一部の機能は省略されています。
構文¶
引数¶
application.jar | application.pyアプリケーションと依存関係を含むファイルへのパス。
[application arguments]アプリケーションのメインメソッドに渡されるアプリケーション固有の引数。
オプション¶
--class CLASS_NAMEアプリケーションのメインクラス(JavaおよびScalaアプリケーションの場合)アプリケーション JAR でメインクラスが指定されていない場合、このオプションは必須です。
--conf [PROP=VALUEPROP=VALUE ...]任意のSpark構成プロパティ。
--exclude-packages [EXCLUDE_PACKAGES ...]--packagesで指定されている依存関係を解決する際に依存関係の衝突を回避するため除外する、groupId:artifactId ペアのコンマ区切りリスト。--help, -hヘルプメッセージを表示して終了します。
--jars JAR含める
.jarファイルのコンマ区切りリスト。クラス検索が使用されていない場合は、ワークロード JAR 自体も含まれる場合があります。
注釈
ファイルはクラスパスに自動的に含まれないため、 addArtifact を使用して明示的に登録する必要があります。
--name NAME アプリケーションの名前。
--properties-file FILE追加プロパティの読み込み元であるファイルへのパス。指定しない場合は、conf/spark-defaults.confが検索されます。
--py-files PY_FILESPythonアプリ用に PYTHONPATH に配置する
.zipファイル、.eggファイルまたは.pyファイルのコンマ区切りリスト。--verbose, -v追加のデバッグ出力を出力します。
--version現在のSparkのバージョンを出力します。
Snowflake固有のオプション¶
--account SNOWFLAKE_ACCOUNT使用するSnowflakeアカウント。指定されている場合は、
connections.tomlファイルのアカウントを上書きします。--authenticator SNOWFLAKE_AUTHENTICATORSnowflakeでのログインの認証方式。指定されている場合は、
connections.tomlファイルの認証コードを上書きします。指定しない場合のデフォルトはユーザーパスワード認証コードです。--comment COMMENTワークロードに関連付けられたメッセージ。Snowflakeでワークロードを識別するために使用できます。
--compute-pool SNOWFLAKE_COMPUTE_POOL指定されたワークロードを実行するためのSnowflakeコンピューティングプール。指定されている場合は、
connections.tomlファイルのコンピューティングプールを上書きします。--database SNOWFLAKE_DATABASE_NAMEセッションで使用されるSnowflakeデータベース。指定されている場合は、
connections.tomlファイルのデータベースを上書きします。--display-logs--workload-statusが指定されている場合にアプリケーションログをコンソールに出力するかどうか。--external-access-integrations [SNOWFLAKE_EXTERNAL_ACCESS_INTEGRATIONS ...]ワークロードに必要なSnowflake外部アクセス統合。
--host SNOWFLAKE_HOSTSnowflakeのデプロイ用のホスト。指定されている場合は、
connections.tomlファイルのホストを上書きします。--password SNOWFLAKE_PASSWORDSnowflakeユーザーのパスワード。指定されている場合は、
connections.tomlファイルのパスワードを上書きします。--requirements-file REQUIREMENTS_FILEワークロードを実行する前にインストールするPythonパッケージの依存関係を含む
requirements.txtファイルへのパス。PyPI の外部アクセス統合が必要です。--snowflake-stageパラメーターも指定した場合、このパラメーターは機能しません。--role SNOWFLAKE_ROLE使用するSnowflakeロール。指定されている場合は、
connections.tomlファイルのロールを上書きします。--schema SNOWFLAKE_SCHEMA_NAMEセッションで使用するSnowflakeスキーマ。指定されている場合は、
connections.tomlファイルのスキーマを上書きします。--snowflake-connection-name SNOWFLAKE_CONNECTION_NAME基本構成として使用する
connections.tomlファイルの接続の名前。コマンドライン引数は、connections.tomlファイルの値を上書きします。--snowflake-grpc-max-message-size MESSAGE_SIZESnowpark Submit での gRPC 通信の最大メッセージサイズ(バイト単位)。
--snowflake-grpc-max-metadata-size METADATA_SIZESnowpark Submit での gRPC 通信の最大メタデータサイズ(バイト単位)。
--snowflake-log-level SNOWFLAKE_LOG_LEVELSnowflakeイベントテーブルのログレベル---
'INFO'、'ERROR'、'NONE'`(デフォルト: :code:'INFO'`)。--snowflake-stage SNOWFLAKE_STAGEワークロードファイルがアップロードされるSnowflakeステージ。
--snowflake-workload-name SNOWFLAKE_WORKLOAD_NAMESnowflakeで実行されるワークロードの名前。
--token-file-path SNOWFLAKE_TOKEN_FILE_PATHSnowflakeの OAuth トークンを含むファイルへのパス。指定されている場合は、
connections.tomlファイル内のトークンファイルのパスを上書きします。--user SNOWFLAKE_USER使用するSnowflakeユーザー。指定されている場合は、
connections.tomlファイルのユーザーを上書きします。--wait-for-completionクラスターモードでは、指定されている場合は、ブロックモードでワークロードを実行し、完了を待ちます。
--warehouse SNOWFLAKE_WAREHOUSE_NAMEセッションで使用するSnowflakeウェアハウス。指定されている場合は、
connections.tomlファイルのウェアハウスを上書きします。--wheel-files WHEEL_FILESPythonワークロードを実行する前にインストールする.whlファイルのコンマ区切りリスト。PyPI では利用できないプライベート依存関係に使用します。
--workload-statusワークロードの詳細ステータスを出力します。
--scala-version SCALA_VERSION使用するScalaバージョン。
2.12または2.13。デフォルト値は2.12です。
一般的なオプションの例¶
アプリケーションのデプロイ¶
SnowflakeのSnowpark Container Services(SPCS)は、Sparkアプリケーションを実行するための主要なインフラストラクチャです。SPCS コンピューティングプールを事前に作成しておく必要があります。
Pythonの基本アプリケーション¶
クラスターモードで基本的なPythonアプリケーションをデプロイするには:
Scalaの基本アプリケーション¶
Scalaの基本アプリケーションをクラスターモードで展開するには、次のようなコマンドを使用します。
アプリケーション JAR でメインクラスを指定した場合は、 --class オプションを省略できます。
Scalaバージョンの指定¶
Scala 2.12と2.13がサポートされており、デフォルトバージョンは2.12です。アプリケーションがScala 2.13で構築されている場合は、 CLI およびスクリプトでScalaバージョンを指定する必要があります。
アプリケーションコードでScalaバージョンを指定する必要があります。
認証¶
Snowpark Submit には、Snowflakeで認証するためのさまざまなメソッドが用意されています。少なくとも1つのメソッドを使用する必要があります。接続プロファイルと直接認証は、併用または個別に使用できます。接続プロファイルに対応するフィールドも存在する場合は、コマンドラインオプションによって該当するフィールドが上書きされます。
接続プロファイル¶
事前構成されたSnowflake接続プロファイルを使用するには:
直接認証¶
ユーザー名とパスワード¶
コマンドで認証の詳細情報を直接提示するには:
OAuth¶
OAuth トークンを使用して認証するには:
Snowflakeリソース¶
ジョブのSnowflakeデータベース、スキーマ、ウェアハウス、およびコンピューティングプールを指定するには:
Snowflakeステージ¶
Snowpark Submit を使用して、Snowflakeステージにファイルを直接保存してアクセスすることができます。
Snowflakeステージのファイルを使用してジョブを送信するには:
依存関係の管理¶
アプリケーションの依存関係を管理することができます。
Pythonの依存関係¶
アプリケーションに必要な追加のPythonファイルまたはアーカイブを指定するには:
JavaまたはScalaの依存関係¶
JavaまたはScalaアプリケーション用の外部 JAR ファイルを含めるには:
--jars オプションを使用して依存関係を追加する場合は、 addArtifact を使用して明示的に登録する必要があります。
ステージングされた JAR ファイルを使用することもできます。これらのファイルは、 --jars オプションで指定する必要はありません。
モニタリングと制御¶
Snowpark Submit ジョブを効率的にモニタリングおよび制御できます。
ジョブの完了待ち¶
デフォルトでは、Snowpark Submit はジョブを開始し、直ちに結果を返します。ブロッキングモードで実行し、ジョブの終了を待つには:
wait-for-completion フラグは、ジョブが完了(正常または失敗で)するまでコマンドがブロックするように指示し、定期的なステータスの更新を示します。これは、Apache Airflowを使用する場合など、他のタスクを進める前にジョブが完了することを確認する必要があるワークフローに有効です。
ワークロードステータスの確認¶
ワークロードのステータス(実行中または完了)を確認します。
このコマンドは、ワークロードに関する次の情報を返します。
現在の状態(
DEPLOYING、RUNNING、SUCCEEDED、FAILED)開始時間と期間
サービスの詳細
アプリケーションログの表示¶
ワークロードステータスとともに詳細ログを表示するには:
display-logs フラグは、アプリケーションの出力ログを取得してコンソールに表示します。これらのログを使用して、以下のタスクを実行できます。
アプリケーションエラーのデバッグ
実行状況のモニタリング
アプリケーション出力を表示する
注釈
ログを取得する準備が整うまでに、数秒から1分までの若干のレイテンシが発生します。イベントテーブルを使用してログデータを格納しない場合、ログは5分以内などの短期間保持されます。
高度な構成¶
高度な構成によって Snowpark Submit ジョブを微調整します。
外部アクセス統合¶
Sparkアプリケーションから外部サービスに接続します。
ログレベルの構成¶
Snowflakeイベントテーブルへのアプリケーションのログレベルを制御します。
--snowflake-log-levelのオプション:INFO、ERROR、NONE。
ジョブコンテキストの追加¶
Snowflakeでワークロードをより簡単に識別できるように、説明的なコメントを追加します。