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
この問題を解決するには、 mode
の引数(第2引数)に 'rb'
を渡して、入力モードをバイナリに指定します。例:
with SnowflakeFile.open(file_name, 'rb') as f:
ヒント¶
機械学習(ML)モデルのトレーニングは、リソースを大量に消費する場合があります。Snowpark用に最適化されたウェアハウスは、大量のメモリとコンピューティングリソースを必要とするワークロードに使用できるSnowflake仮想ウェアハウスの一種です。機械学習モデルとSnowpark Pythonの詳細については、 Snowpark Pythonを使用した機械学習モデルのトレーニング をご参照ください。
マスキングポリシー でPython UDFを使用する場合は、列、UDF、およびマスキングポリシーのデータ型が一致していることを確認します。
サードパーティパッケージのトラブルシューティング情報については、 サードパーティパッケージの既知の問題 をご参照ください。