Python UDFsのトラブルシューティング

このトピックでは、Python UDFs(ユーザー定義関数)に関するトラブルシューティング情報を提供します。

このトピックの内容:

トラブルシューティング

問題: 必要なPythonライブラリがAnacondaから利用できない

C/C++拡張機能を持たないサードパーティのPythonライブラリは、 UDFs によってSnowflakeステージを介して直接インポートできます。詳細については、 ステージからアップロードされたコードを使用したPython UDFの作成 をご参照ください。

追加のAnacondaパッケージをサポートするリクエストを送信する方法については、 サードパーティパッケージの使用 をご参照ください。

問題: UDF が「Function available memory exhausted」というエラーで失敗する

UDF が使用するメモリの量を減らします。

UDF コードにバグやメモリリークがないかどうかを確認します。

詳細については、 メモリ をご参照ください。

問題: ZIP またはその他のアーカイブを UDF 内に抽出する

ZIP ファイルをSnowflakeステージにアップロードし、 UDF 内の /tmp ディレクトリに解凍する方法の例については、 ステージングされたファイルの解凍 をご参照ください。

問題: UDF のパフォーマンスが遅い

UDFs のパフォーマンスを改善する方法については、 スケールとパフォーマンスの最適化 をご参照ください。

問題: ORGADMIN ロールが有効になっていないため、Anacondaパッケージを使用できない

Anacondaのサードパーティパッケージの使用を開始する ためのステップを実行するには、組織管理者(ORGADMIN)のロールが必要です。

この問題を解決するには、 アカウントのORGADMINロールの有効化 の手順に従います。

問題: UDF でファイル読み取り時にエラー「UnicodeDecodeError」が出て失敗する

SnowflakeFile クラスを使用して、テキスト以外のデータを含むファイルを読み取る場合、入力モードはバイナリに指定する必要があります。そうしないと、次のようなエラーが発生することがあります。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf7 in position 12: invalid start byte
Copy

この問題を解決するには、 mode の引数(第2引数)に 'rb' を渡して、入力モードをバイナリに指定します。例:

with SnowflakeFile.open(file_name, 'rb') as f:
Copy

ヒント

機械学習(ML)モデルのトレーニングは、リソースを大量に消費する場合があります。Snowpark用に最適化されたウェアハウスは、大量のメモリとコンピューティングリソースを必要とするワークロードに使用できるSnowflake仮想ウェアハウスの一種です。機械学習モデルとSnowpark Pythonの詳細については、 Snowpark Pythonを使用した機械学習モデルのトレーニング をご参照ください。

マスキングポリシー でPython UDFを使用する場合は、列、UDF、およびマスキングポリシーのデータ型が一致していることを確認します。

サードパーティパッケージのトラブルシューティング情報については、 サードパーティパッケージの既知の問題 をご参照ください。