既存のPythonパッケージのアップロード¶
Snowflake CLI では、 snow snowpark package コマンドを使用して、既存のPythonパッケージをSnowparkインポートに追加できます。PyPi などのすでに実装されているパッケージを関数やプロシージャで使用できます。
SnowparkインポートにPythonパッケージを追加するには、次を実行します。
パッケージがすでに利用可能かどうかを確認する¶
パッケージがまだ利用可能でないかどうかを確認するには、snow snowpark package lookup コマンドを使用します。
次の例は、Snowflake Anacondaチャネルで既に利用可能なパッケージを検索する方法を示しています。
Snowflake Anacondaチャネルでパッケージが利用できない場合は、次のようなメッセージが表示されます。
詳細については、 snowpark package lookup コマンドをご参照ください。
パッケージをダウンロードしてSnowflakeアーティファクトを作成する¶
パッケージをダウンロードしてアップロードするSnowflakeアーティファクトを作成するには、snow snowpark package create コマンドを使用します。
条件:
<name>には、パッケージ名、パッケージの URL、ローカルファイルパスなど、pipでサポートされている任意の要件指定子を指定できます。
追加オプション:
--allow-shared-libraries: インストールされたパッケージを:codenowrap:pipを通して使用する場合、共有(.so/.dll)ライブラリを許可します。--ignore-anaconda: Snowflake Anacondaチャンネルのパッケージを検索しません。--index-url: パッケージ検索に使うPythonパッケージインデックスのベース URL を指定します。この URL は、 PEP 503に準拠したリポジトリ(シンプルリポジトリ API)か、同じ形式でレイアウトされたローカルディレクトリを指す必要があります。--skip-version-check: 要件とAnaconda間の依存関係のバージョン比較をスキップします。
次の例は、Snowflakeアーティファクトを作成するためのさまざまな状況を示しています。
例: Anaconda依存関係を持つパッケージの作成¶
この例では、ステージにアップロードして後でSnowpark Pythonアプリでインポートできるzipファイルとして、Pythonパッケージを作成します。「july」パッケージの依存関係がAnacondaチャネルで見つかったため、 .zip ファイルから除外されました。このコマンドは、Snowparkプロジェクトの requirements.txt に含める必要があるパッケージを表示します。
例: --ignore-anaconda オプションを使用したパッケージの作成¶
この例では、 requirements.txt ファイルに依存関係を追加することなく、Snowparkプロジェクトで使用できる july.zip パッケージを作成します。エラーメッセージは、一部のパッケージに共有ライブラリが含まれており、Windowsを使用してパッケージを作成する場合などに機能しない可能性があることを示しています。
例: Snowflake Anacondaチャネルで既に利用可能なパッケージの作成¶
この例では、パッケージがすでに存在しているため、作成に失敗しています。 --ignore-anaconda オプションを使用して、強制的にパッケージを作成することもできます。
パッケージの作成の詳細については、 snowpark package create コマンドをご参照ください。
パッケージをSnowflakeステージにアップロードする¶
パッケージをアップロードするには、 snow snowpark package upload コマンドを使用します。
このコマンドはPythonパッケージのzipファイルをSnowflakeステージにアップロードし、プロシージャまたは関数のインポートで参照できるようにします。
Snowparkのプロシージャと関数でパッケージを使用する¶
プロシージャまたは関数でパッケージを使用するには、 snowflake.yml の Snowpark定義 セクションの imports パラメーターに追加します。
次に、関数ハンドラーにパッケージをインポートします。