Snowpark Library for Pythonの2025年リリースノート¶
この記事には、 Snowpark Library for Python のリリースノートが含まれています。また、該当する場合は以下が含まれます。
動作の変更
新機能
顧客向けバグ修正
Snowflake は、 Snowpark Library for Python の更新にセマンティックバージョニングを使用します。
ドキュメントについては、 Python用Snowpark開発者ガイド をご参照ください。
警告
Python 3.8が ` サポート終了 <https://devguide.python.org/versions/>`_ に達したため、Python 3.8でSnowpark-pythonを使用する際に非推奨の警告がトリガーされます。詳細については、 Snowflake Pythonランタイムのサポート をご参照ください。Snowpark Python 1.24.0は、 Anacondaのポリシー に従い、Python 3.8をサポートする最後のクライアントとサーバーバージョンとなります。既存のPython 3.8オブジェクトをPython 3.9以上にアップグレードしてください。
バージョン1.39.1: 2025年9月25日¶
バグ修正¶
ネスト化および構造化された型を使用する際に無効な SQL の付与を引き起こす可能性のあるスキーマクエリ生成のバグに実験的な修正を追加しました。
バージョン1.39.0: 2025年9月17日¶
新機能¶
ログメッセージが内部
DataFrameReferenceオブジェクトのSnowparkDataFrame参照が変更されましたと伝えるレベルlogging.DEBUG - 1にダウングレードしました。セッションを取得するときに、大文字と小文字のステータスに対する重複するパラメーターチェッククエリを排除します。
オブジェクトメタデータを介して DataFrame 行カウントを取得し、COUNT(*)クエリ(パフォーマンス)を回避します
Snowflake Cortex関数
Completeの適用のサポートを追加しました。高速のpandasを導入します。行位置の計算を延期することで、パフォーマンスを改善しました。
次の操作は現在サポートされており、最適化の恩恵を受けることができます。
read_snowflake、repr、loc、reset_index、mergeおよび バイナリ演算子。遅延オブジェクト(例: DataFrame または Series)がサポートされている操作とサポートされていない操作の組み合わせに依存する場合、最適化は使用されません。
Snowpark pandasが
apply内で参照されている場合のエラーメッセージを更新しました。高速pandasのダミー行位置の最適化を有効または無効にするセッションパラメーター
dummy_row_pos_optimization_enabledを追加しました。
依存関係の更新¶
サポートされる
modinバージョンを、>=0.35.0および <0.37.0 (was previously >= 0.34.0および<0.36.0)に更新しました。
バグ修正¶
同じデータソースが同じクエリで複数回読み込まれることがあるが、毎回異なる順序で読み取られるため、最終結果の行が欠落する
drop_duplicatesの問題を修正しました。この修正により、データソースが1回だけ読み取られるようになります。AssertionErrorが特定のインデックス操作によって予期せず発生するハイブリッド実行モードのバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
パッチ適用
functions.ai_completeの許可のサポートを追加しました。
バージョン1.38.0: 2025年9月4日¶
新機能¶
functions.pyで以下の AI 駆動型関数のサポートを追加しました。ai_extractai_parse_documentai_transcribe
履歴データをクエリするためのTime Travelサポートが追加されました。
Session.table()はTime Travelパラメーターをサポートするようになりました。time_travel_modestatementoffsettimestamptimestamp_typestream
DataFrameReader.table()は、直接引数と同じTime Travelパラメーターをサポートします。DataFrameReaderオプションの連結を介してTime Travelをサポートします(例:session.read.option("time_travel_mode", "at").option("offset", -60).table("my_table"))。
検証と外部ロケーションへのデータ書き込みのために、以下のパラメーターに
DataFrameWriter.copy_into_locationを指定するサポートを追加しました。validation_modestorage_integrationcredentialsencryption
メタデータとともにステージ上のすべてのファイルのリストを取得する
Session.directoryおよびSession.read.directoryのサポートを追加しました。DataFrameReader.jdbc(Private Preview)ドライバーに外部データソースを取り込むことを許可する JDBC のサポートを追加しました。ソースの場所から出力ステージにファイルをコピーする
FileOperation.copy_filesのサポートを追加しました。functions.pyで以下のスカラー関数のサポートを追加しました。all_user_namesbitandbitand_aggbitorbitor_aggbitxorbitxor_aggcurrent_account_namecurrent_clientcurrent_ip_addresscurrent_role_typecurrent_organization_namecurrent_organization_usercurrent_secondary_rolescurrent_transactiongetbit
バグ修正¶
それが表す実際のサブタイプを照合する
TimestampTypeの_repr_を修正しました。UDTFインジェスチョンがストアドプロシージャで機能しないDataFrameReader.dbapiのバグを修正しました。誤ったステージプレフィックスが使用されるスキーマ推論のバグを修正しました。
改善¶
不要な操作を防ぐために
DataFrameReader.dbapiスレッドベースのインジェスチョンでエラーの処理を強化し、リソース効率を改善しました。以前のバージョンに加えて
cloudpickle==3.1.1もサポートするように、cloudpickleの依存関係を更新しました。サーバー側のカーソルを使用してデータを取得することで、PostgreSQL および MySQL の :code:`DataFrameReader.dbapi`(パブリックプレビュー)インジェスチョンパフォーマンスを改善しました。
Snowpark pandas API の更新¶
新機能¶
「Pandas」および「Ray」バックエンドで、次の関数のサポートを完了しました。
pd.read_snowflake()pd.to_iceberg()pd.to_pandas()pd.to_snowpark()pd.to_snowflake()DataFrame.to_iceberg()DataFrame.to_pandas()DataFrame.to_snowpark()DataFrame.to_snowflake()Series.to_iceberg()Series.to_pandas()Series.to_snowpark()Series.to_snowflake()「Pandas」および「Ray」バックエンド。以前は、これらの関数とメソッドの一部のみがPandasバックエンドでサポートされていました。
Index.get_level_values()のサポートを追加しました。
改善¶
Snowflakeから送信するデータのハイブリッド実行におけるデフォルト転送制限を100kに設定します。これは:codenowrap:
SnowflakePandasTransferThreshold環境変数で上書きできます。この構成は、リレーショナルワークロードで2つの利用可能なエンジン、「pandas」と「Snowflake」を使用するシナリオに適しています。--upgradeをメッセージのpip install "snowflake-snowpark-python[modin]"に追加することで、インポートエラーメッセージを改善しました。5秒間のウィンドウに事前に集約し、ハイブリッド実行とネイティブpandasパフォーマンスの追跡に役立つ狭い範囲のメトリックのみを維持することで、modinクライアントからのテレメトリーメッセージを削減しました。
ハイブリッド実行が有効な場合にのみ初期行カウントを設定すると、多くのワークロードに対して発行されるクエリの数が減ります。
ハイブリッド実行を有効にするための統合テスト用の新しいテストパラメーターを追加しました。
バグ修正¶
pandasまたはrayバックエンドを使用して DataFrames またはシリーズでSnowflake拡張関数/メソッド
to_dynamic_table()、cache_result()、to_view()、create_or_replace_dynamic_table()およびcreate_or_replace_view()を呼び出そうとしたときにAttributeErrorではなくNotImplementedErrorが発生します。
バージョン1.37.0(2025年8月18日)¶
新機能¶
functions.pyで以下のxpath関数のサポートを追加しました。xpathxpath_stringxpath_booleanxpath_intxpath_floatxpath_doublexpath_longxpath_short
Session.write_arrow()関数にあるuse_vectorized_scannerパラメーターのサポートを追加しました。DataFrame プロファイラーは各クエリについて以下の情報を追加します:
describe query time、execution time`および :code:`sql query text。この情報を表示するには、session.dataframe_profiler.enable()`を呼び出し、 DataFrame上で :code:`get_execution_profileを呼び出します。DataFrame.col_ilikeのサポートを追加しました。AsyncJobオブジェクトを返す、ノンブロッキング ストアド プロシージャ呼び出しのサポートが追加されました。Session.call()にblock: bool = Trueのパラメーターを追加しました。block=Falseのとき、ブロックする代わりに完了までAsyncJobを返します。名前付きストアドプロシージャと匿名ストアドプロシージャの両方で非同期をサポートするため、
StoredProcedure.__call__()へのblock: bool = Trueパラメーターを追加しました。Session.call(block=False)`と同等の:code:`Session.call_nowait()を追加しました。
バグ修正¶
大規模な入力データを使用しながら DataFrame が
session.create_dataframe()を使ってローカルに作成される際、内部プランのdeepcopyがメモリ急増を引き起こす可能性のある CTE 最適化ステージでのバグを修正しました。infer_schema_optionsのignore_caseオプションが尊重されないDataFrameReader.parquetにおけるバグを修正しました。クエリ結果の形式が
JSONおよびARROWに設定されている場合、to_pandas()の列名に異なる形式が使用されるバグを修正しました。
非推奨¶
pkg_resourcesを廃止しました。
依存関係の更新¶
Protobuf<6.32に依存関係を追加しました。
Snowpark pandas API の更新¶
新機能¶
DataFrame.set_backendメソッドを使用した、Snowflakeと<Ray <https://www.ray.io/>`_間でのデータの効率的な転送サポートが追加されました。:code:`modinのインストールされているバージョンは少なくとも0.35.0およびrayをインストールする必要があります。
依存関係の更新¶
サポートされるModinバージョンを>=0.34.0、 <0.36.0 (was previously >= 0.33.0および<0.35.0)に更新しました。
インストールされたModinバージョンが0.35.0以上の場合、pandas 2.3のサポートを追加しました。
バグ修正¶
pd.to_datetimeおよびpd.to_timedeltaが予期せずIndexErrorを発生させるハイブリッド実行モード(プライベートプレビュー)の問題を修正しました。潜在的な切り替え操作が実行される前に呼び出された際、
pd.explain_switchが:code:IndexErrorを発生させるかNoneを返すバグを修正しました。
バージョン1.36.0(2025年8月5日)¶
新機能¶
pandas DataFrame からか
pyarrowテーブルから、 DataFrame を作成する際、Session.create_dataframeはSession.write_pandasまたはSession.write_arrowへの内部呼び出しで転送されるキーワード引数を受け入れるようになりました。AsyncJob に新しい APIs を追加しました。
AsyncJob.is_failed()は、ジョブが失敗したかどうかを示すbool値を返します。ジョブが終了し、エラーが発生したかどうかを判断するためにAsyncJob.is_done()と組み合わせて使用できます。result()を呼び出すことなく詳細なモニタリングを行うために、AsyncJob.status()は、現在のクエリステータスを表す文字列("RUNNING"、 "SUCCESS"、 "FAILED_WITH_ERROR"など)を返します。
DataFrame プロファイラーを追加しました。使用するには、ご希望の DataFrame で
get_execution_profile()を呼び出すことができます。このプロファイラーは、各クエリ演算子に関する統計と、 DataFrame を評価するために実行されたクエリをレポートします。現在は、実験的な機能です。functions.pyで以下の関数のサポートを追加しました。ai_sentiment
context.configure_development_features実験的な機能のインターフェースを更新しましたユーザーが明示的に有効にしない限り、すべての開発機能はデフォルトで無効になります。
改善¶
ハイブリッド実行行の推定を改善し、先行呼び出しを縮小しました。
ハイブリッド実行使用時にSnowflakeからの転送コストを制御する新しい構成変数を追加しました。
DataFrame/Series/GroupBy.applyを使用した、永続的で不変の UDFs/UDTFs、マップ、および
snowflake_udf_paramsキーワード引数を渡すことによる変換を作成するサポートを追加しました。mapping np.uniqueから DataFrame、およびpd.uniqueを使用したシリーズ入力のためのサポートを追加しました。
バグ修正¶
ユーザーがプログラムで、または環境変数を使用して明示的に構成している場合でも、Snowpark pandas プラグインが無条件に
AutoSwitchBackendを無効にする問題を修正しました。
バージョン1.35.0(2025年7月24日)¶
新機能¶
functions.pyで以下の関数のサポートを追加しました。ai_embedtry_parse_json
改善¶
クエリを囲むための括弧が不要になるように、
DataFrameReader.dbapi(プライベートプレビュー)のqueryパラメーターを改善しました。ターゲットデータソースのスキーマを推論するときに発生する例外に対する
DataFrameReader.dbapi(プライベートプレビュー)でのエラーエクスペリエンスが改善されました。
バグ修正¶
Pythonストアドプロシージャで、プロセス終了コード1で
dbapiを失敗する:code:DataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。custom_schemaが無効なスキーマを受け入れるDataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。custom_schemaがPostgresおよび MySQL に接続する場合に機能しないDataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。外部ステージで失敗するスキーマ推論のバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
SnowflakeFileでファイルを読み取るためのローカルテストサポートを追加しました。テストサポートは、ローカルファイルパス、Snow URL セマンティック(snow://...)、ローカルテストフレームワークステージ、Snowflakeステージ(@stage/file_path)を使用します。
バージョン1.34.0(2025年7月14日)¶
新機能¶
DataFrameReaderに新しいオプションTRY_CASTを追加しました。TRY_CASTがTrueの場合、データをロードする際ハードキャストの代わりに列はTRY_CASTステートメントでラップされます。DataFrameReaderのINFER_SCHEMA_OPTIONSに新しいオプションUSE_RELAXED_TYPESを追加しました。True`に設定した場合、このオプションはすべての文字列を最長文字列にキャストし、すべての数値型を :code:`DoubleTypeにキャストします。データフレームスキーマのメタデータを積極的に検証するため、デバッグ性を改善しました。
snowflake.snowpark.context.configure_development_features()を使用して有効にします。ユーザーがデータフレーム全体で関数をマッピングできるように、新しい関数
snowflake.snowpark.dataframe.map_in_pandasを追加しました。マッピング関数は、Pandas DataFrames のイテレーターを入力として取り、出力として1つ提供します。クエリを説明する
ttl cacheを追加しました。15秒間隔で繰り返されるクエリは、Snowflakeを再クエリするのではなく、キャッシュされた値を使用します。ローカルインジェスチョンで並列データをフェッチするための複数の処理を有効にするため、パラメーター
fetch_with_processをDataFrameReader.dbapi(PrPr)に追加しました。デフォルトでは、ローカルインジェスチョンはマルチスレッドを使用します。複数処理により、Parquetファイルの生成などの CPU バウンドタスクのパフォーマンスを向上させることができます。ユーザーがモデルのメソッドを呼び出せるように、新しい関数
snowflake.snowpark.functions.modelを追加しました。
改善¶
rowTagオプションを使用した行タグを持つ XML ファイル読み取り時の、rowValidationXSDPathオプションを使用した XSD スキーマ を使用する行検証のサポートを追加しました。session.table().sample()がフラットな SQL ステートメントを生成するために、SQL の 生成を改善しました。functions.explodeの入力として、複雑な列式のサポートが追加されました。どのPython行が SQL コンパイルエラーに対応しているかを示すデバッグ性の向上を追加しました。
snowflake.snowpark.context.configure_ Development_features()`を使用して有効にします。この機能は :code:`session.ast_enabled = Trueを使用して実行する、セッション内での AST コレクションの有効化にも依存します。NotImplementedErrorをスローする代わりに DML/DDL クエリを含むSnowpark DataFrame からto_snowpark_pandas():code:を呼び出すとき、enforce_ordering=Trueを設定します。
バグ修正¶
Icebergテーブルを作成する際の冗長検証によって発生するバグを修正しました。
カーソルまたは接続を閉じると、予期せずエラーが発生し、プログラムが終了する可能性があった :code:`DataFrameReader.dbapi`(プライベートプレビュー)のバグを修正しました。
DataFrame の入力列と一致する出力列を持つ
DataFrame.select()でテーブル関数を使用する際のあいまいな列エラーを修正しました。DataFrame 列がColumnオブジェクトとして提供される際に、この改善が機能します。DecimalTypes の列に NULL がある際、代わりに列を FloatTypes にキャストし、精度の低下につながるバグを修正しました。
Snowparkローカルテストの更新¶
ウィンドウ関数を処理する際に、結果のインデックス作成が不正になるバグを修正しました。
スカラー数値が
fillnaに渡されると、Snowflakeはエラーを生成する代わりに、数値以外の列を無視します。
Snowpark pandas API の更新¶
新機能¶
DataFrame.to_excelおよびSeries.to_excelのサポートを追加しました。pd.read_feather、pd.read_orc、およびpd.read_stataのサポートを追加しました。ハイブリッド実行決定に関するデバッグ情報を返す
pd.explain_switch()のサポートを追加しました。グローバルModinバックエンドが
Pandasの場合、pd.read_snowflakeをサポートします。pd.to_dynamic_table、pd.to_iceberg、およびpd.to_viewのサポートを追加しました。
改善¶
API コールとハイブリッドエンジンスイッチにModinテレメトリーを追加しました。
modinまたはpandasバージョンが要件と一致しない際、Snowflake Notebookユーザーに対して、より役立つエラーメッセージを表示します。ハイブリッド実行モード(プライベートプレビュー)のコスト関数に、データ型の互換性をチェックするデータ型ガードを追加しました。
pandas on Snowflakeに直接実装されていない多くのメソッドに対して、ハイブリッド実行モード(プライベートプレビュー)のpandasバックエンドに自動切り替えを追加しました。
pandas on Snowflakeテレメトリーの
typeおよびその他の標準フィールドを設定しました。
依存関係の更新¶
ユーザーがModinのバックエンドを切り替えたときに進行状況バーが表示されるように、
tqdmおよびipywidgetsを依存関係として追加しました。サポートされる
modinバージョンを、>=0.33.0および <0.35.0 (was previously >= 0.32.0および<0.34.0)に更新しました。
バグ修正¶
ハイブリッド実行モード(プライベートプレビュー)で、特定の系列操作が
TypeError: numpy.ndarray object is not callableを発生させるバグを修正しました。Pandasバックエンドを使用したmodinオブジェクトに対する
np.whereのようなnumpy操作の呼び出しがAttributeErrorを発生させる、ハイブリッド実行モード(プライベートプレビュー)でのバグを修正しました。この修正にはmodinバージョン0.34.0以降が必要です。結果の値に、追加のサフィックスが適用される:code:
df.meltでの問題を修正しました。
バージョン1.33.0(2025-06-19)¶
新機能¶
Parquetと UDTF ベースのインジェスチョンの両方の
DataFrameWriter.dbapi(プライベートプレビュー)での MySQL のサポートを追加しました。Parquetと UDTF ベースのインジェスチョンの両方の
DataFrameReader.dbapi(プライベートプレビュー)での PostgreSQL のサポートを追加しました。Databricksサポートの他の例と統合して、 UDTF ベースのインジェスチョン用の
DataFrameWriter.dbapi(プライベートプレビュー)でのDatabricksのサポートを追加しました。有効化された
INFER_SCHEMAでファイルの読み取りをするときPATTERNの使用を可能にするDataFrameReaderのサポートを追加しました。functions.pyで以下の AI 駆動型関数のサポートを追加しました。ai_completeai_similarityai_summarize_agg(元はsummarize_agg)ai_classifyのさまざまな構成オプション
rowTagオプションを使用した行タグを持つ XML ファイル読み取り時の、より多くのオプションのサポートが追加されました。ignoreNamespaceを使用して列名から名前空間プレフィックスを削除するためのサポートを追加しました。attributePrefixオプションを使用して、結果テーブルの属性列のプレフィックスを指定するためのサポートを追加しました。excludeAttributesオプションを使用して XML 要素から属性を除外するためのサポートを追加しました。valueTagオプションを使用して、子要素を持たない要素に属性がある場合に値の列名を指定できるようにするサポートを追加しました。nullValueオプションを使用してnull値として扱う値を指定するためのサポートを追加しました。charsetオプションを使用して XML ファイルの文字エンコードを指定するサポートを追加しました。ignoreSurroundingWhitespaceオプションを使用して XML 要素の周囲の空白を無視するサポートを追加しました。
関数の戻り型を
DataFrameオブジェクトに設定するために使用できるSession.callのパラメーターreturn_dataframeのサポートが追加されました。文字列に対して計算される
stddevおよびmeanをトリガーするstrings_include_math_statsと呼ばれるDataframe.describeに新しい 引数を追加しました。DataFrame.lineage.traceのDGQLから系統を取得する場合にEdge.propertiesを取得するためのサポートを追加しました。テーブルが既に存在するかどうかを指定できるパラメーター
table_existsをDataFrameWriter.save_as_tableに追加しました。これにより、コストがかかる可能性のあるテーブルルックアップをスキップできます。
バグ修正¶
ローカル関数として定義されている
create_connectionがマルチプロセッシングと互換性を持たないDataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。TIMESTAMP_LTZ型であるべきDatabricksTIMESTAMP型が、SnowflakeTIMESTAMP_NTZ型に変換されたDataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。同じリーダーオブジェクトで繰り返し読み込みを行うと、誤って引用符で囲まれた列が作成される
DataFrameReader.jsonのバグを修正しました。選択ステートメントからのものではない DataFrame を変換するときに列名を削除する可能性がある
DataFrame.to_pandas()のバグを修正しました。DataFrame が UDTF を含み UDTF 内の
SELECT *が正しく解析されないとき、DataFrame.create_or_replace_dynamic_tableがエラーを生じるバグを修正しました。キャストされた列が関数の値句で使用できないバグを修正しました。
改善¶
入力pandas DataFrame に列がないときの
Session.write_pandas()および :code:`Session.create_dataframe()`のエラーメッセージを改善しました。現在の DataFrame の列と衝突する出力列を持つテーブル関数が引数に含まれる際の
DataFrame.selectを改善しました。改善により、ユーザーがdf.select("col1", "col2", table_func(...))に衝突しない列を文字列引数として提供した場合、Snowparkクライアントによって生成されるクエリがあいまいな列エラーを発生させることはなくなりました。パフォーマンスとセキュリティを向上させるため、インメモリParquetベースインジェスチョンを使用できるように
DataFrameReader.dbapi(プライベートプレビュー)を改善しました。テーブルへのコピー操作において
MATCH_BY_COLUMN_NAME=CASE_SENSITIVEを使用するためにDataFrameReader.dbapi(プライベートプレビュー)を改善しました。
Snowparkローカルテストの更新¶
新機能¶
ローカルファイルテストにsnow URLs (
snow://)のサポートを追加しました。
バグ修正¶
結合されたデータまたは以前にフィルタリングされたデータの誤ったフィルタリングを引き起こす可能性がある :code:`Column.isin`のバグを修正しました。
結果が不正なインデックスを持つ可能性がある
snowflake.snowpark.functions.concat_wsのバグを修正しました。
Snowpark pandas API の更新¶
依存関係の更新¶
modinの依存関係制約を0.32.0から>=0.32.0, <0.34.0に更新しました。Snowpark Pandasでテストされた最新バージョンはmodin0.33.1です。
新機能¶
ハイブリッド実行(プライベートプレビュー) のサポートを追加しました。
from modin.config import AutoSwitchBackend; AutoSwitchBackend.enable()の実行により、pandas on Snowflakeは特定のpandas操作をローカルで実行するか、Snowflake上で実行するかを自動的に選択します。この機能はデフォルトで無効になっています。
改善¶
DataFrame.to_view、Series.to_view、DataFrame.to_dynamic_tableおよびSeries.to_dynamic_tableのためにindexパラメーターのデフォルト値をFalseに設定しました。テーブル作成関数の
iceberg_versionオプションを追加しました。入力データのサイズを取得するクエリを以前に発行した
insert、reprおよびgroupbyを含む多くの操作のクエリ数を削減しました。
バグ修正¶
otherパラメーターが名前のないSeriesの際、 :code:`Series.where`のバグを修正しました。
バージョン1.32.0(2025-05-15)¶
改善¶
Snowflakeシステムプロシージャを呼び出しても、プロシージャの戻り値タイプをチェックする追加の
describe procedure呼び出しは起動しません。ステージURLと
FILEデータタイプを持つSession.create_dataframe()に対するサポートが追加されました。session.read.option('mode', <mode>), option('rowTag', <tag_name>).xml(<stage_file_path>)を使用してXMLファイルを読み込む際に、破損したXML記録を処理するための異なるモードに対するサポートが追加されました。現在、PERMISSIVE、DROPMALFORMED、FAILFASTがサポート対象になります。指定された
ROWTAGがファイル内に見つからない場合のXMLリーダーのエラーメッセージが改善されました。Dataframe.dropのクエリ生成が改善されました。SELECT * EXCLUDE ()を使用してドロップされた列を除外できるようになります。この機能を有効にするには、session.conf.set("use_simplified_query_generation", True)を設定します。StructType.from_jsonにVariantTypeのサポートを追加しました。
バグ修正¶
外部データベース内のユニコードまたは二重引用符で囲まれた列名が正しく引用されないためにエラーが発生していた
DataFrameWriter.dbapi(プライベートプレビュー)のバグを修正しました。ネストされた
OBJECTデータの名前付きフィールドにスペースが含まれるとエラーになるバグを修正しました。
Snowparkローカルテストの更新¶
バグ修正¶
ソート方向を無視する
snowflake.snowpark.functions.rankのバグを修正しました。フィルターにかけたデータに対して不正な結果を引き起こす
snowflake.snowpark.functions.to_timestamp_*のバグを修正しました。
Snowpark pandas API の更新¶
新機能¶
Series.str.get、Series.str.slice、Series.str.__getitem__(Series.str[...])のdict値に対するサポートを追加しました。DataFrame.to_htmlのサポートを追加しました。DataFrame.to_stringおよびSeries.to_stringのサポートを追加しました。pd.read_csvを使用してS3バケットからファイルを読み込むサポートを追加しました。
改善¶
iceberg_configがDataFrame.to_icebergとSeries.to_icebergの必須パラメーターになります。
バージョン1.31.0(2025-04-24)¶
新機能¶
StoredProcedure.register():code:のexecute_as引数のrestricted callerパーミッションに対するサポートを追加しました。DataFrame.to_pandas()における非選択ステートメントに対するサポートを追加しました。Session.add_packages、Session.add_requirements、Session.get_packages、Session.remove_package、Session.clear_packagesにartifact_repositoryパラメーターのサポートを追加しました。session.read.option('rowTag', <tag_name>).xml(<stage_file_path>)で行タグを使用してXMLファイルを読み込むサポートを追加しました(実験的)。XMLの各記録が個別の行として抽出されます。
その記録内の各フィールドが
VARIANTタイプの独立した列になり、col(a.b.c)などのドット記法でさらにクエリを実行できるようになります。
DataFrameReader.dbapi(PrPr)に更新を追加しました。取り込んだ複数のデータを1つのParquetファイルにマージしてパフォーマンスを最適化するための
fetch_merge_countパラメーターを追加しました。Databricksに対するサポートを追加しました。
Snowflake UDTFによるインジェストに対するサポートを追加しました。
functions.pyでのAI対応関数のサポートを追加しました(プライベートプレビュー)。promptai_filter(prompt()関数と画像ファイルに対するサポートを追加し、第2引数名をexprからfileに変更)ai_classify
改善¶
DataFrame.to_snowpark_pandasのrelaxed_orderingパラメーター名をenforce_orderingに変更しました。また、新しいデフォルト値はenforce_ordering=Falseになり、以前のデフォルト値relaxed_ordering=Falseとは逆の効果になります。デフォルトの
fetch_sizeパラメーター値を1000に設定することで、DataFrameReader.dbapi(PrPr)の読み込みパフォーマンスを改善しました。一致する可能性のある識別子を提案することにより、無効な識別子SQLエラーのエラーメッセージを改善しました。
session.tableを使用してSnowflakeテーブルからDataFrameを作成する際に発行されるdescribeクエリの数を減らしました。DataFrameAnalyticsFunctions.time_series_agg()のパフォーマンスと精度を向上させました。
バグ修正¶
ピボット列と集計列が同じ場合の
DataFrame.group_by().pivot().aggのバグを修正しました。create_connectionが未対応のドライバータイプの接続オブジェクトを返した場合にTypeErrorが発生するDataFrameReader.dbapi(PrPr)のバグを修正しました。df.limit(0)呼び出しが正しく適用されないバグを修正しました。アペンドモードを使用すると予約名がエラーになる
DataFrameWriter.save_as_tableのバグを修正しました。
非推奨¶
Python3.8のサポートが廃止予定になりました。
DataFrameAnalyticsFunctions.time_series_agg()のsliding_interval引数が廃止予定になりました。
Snowparkローカルテストの更新¶
新機能¶
Window.range_betweenにインターバル式のサポートを追加しました。array_construct関数に対するサポートを追加しました。
バグ修正¶
ローカルテストにおいて、一時ディレクトリの
__pycache__がインポートによるストアドプロシージャの実行中に意図せずコピーされるバグを修正しました。ローカルテストにおいて、
Column.likeの呼び出しに不正な結果が生じるバグを修正しました。ローカルテストにおいて、
Column.getItemとsnowpark.snowflake.functions.getがnullではなくIndexErrorを返すバグを修正しました。ローカルテストにおいて、
df.limit(0)の呼び出しが正しく適用されないバグを修正しました。ローカルテストにおいて、空のテーブルに
Table.mergeを入力すると例外が発生するバグを修正しました。
Snowpark Pandas API の更新¶
依存関係の更新¶
modinを0.30.1から0.32.0に更新しました。numpy2.0以上に対するサポートを追加しました。
新機能¶
DataFrame.create_or_replace_viewおよびSeries.create_or_replace_viewのサポートを追加しました。DataFrame.create_or_replace_dynamic_tableおよびSeries.create_or_replace_dynamic_tableのサポートを追加しました。DataFrame.to_viewおよびSeries.to_viewのサポートを追加しました。DataFrame.to_dynamic_tableおよびSeries.to_dynamic_tableのサポートを追加しました。集計の
max、mean、median、min、sumに対するDataFrame.groupby.resampleのサポートを追加しました。次を使用したステージファイルの読み込み対するサポートを追加しました。
pd.read_excelpd.read_htmlpd.read_picklepd.read_saspd.read_xml
DataFrame.to_icebergおよびSeries.to_icebergのサポートを追加しました。Series.str.lenでのdict値のサポートを追加しました。
改善¶
高価なピボットステップを回避することで、
DataFrame.groupby.applyとSeries.groupby.applyのパフォーマンスを向上させました。より良いエンジン切り替えを可能にするため、
OrderedDataFrameに行数の上限推定値を追加しました。その結果、クエリ数が増加する可能性があります。relaxed_orderingパラメーター名をenforce_orderingに変更しました(pd.read_snowflake)。また、新しいデフォルト値はenforce_ordering=Falseになり、以前のデフォルト値relaxed_ordering=Falseとは逆の効果になります。
バグ修正¶
icebergテーブルと
enforce_ordering=Trueの読み込み時におけるpd.read_snowflakeのバグを修正しました。
バージョン1.30.0(2025-03-27)¶
新機能¶
relaxed_orderingパラメーターを採用することで、Dataframe.to_snowpark_pandasにおける緩和された一貫性と順序保証のサポートを追加しました。DataFrameReader.dbapi(プレビュー)でsession_init_statementパラメーターに文字列のリストを指定できるようになり、セッションの初期化中に複数のSQLステートメントを実行できるようになります。
改善¶
Dataframe.stat.sample_byのクエリ生成を改善しました。fractionsの各キーに対してUNION ALLサブクエリを作成する旧方式と比較して、大規模なfractionsディクショナリで適切なスケーリングを行う単一のフラットクエリを生成するようになります。この機能を有効にするには、session.conf.set("use_simplified_query_generation", True)を設定します。Parquetファイルをテーブルにコピーする際にベクトル化オプションを有効にすることで、
DataFrameReader.dbapiのパフォーマンスが向上しました。次を行うことで
DataFrame.random_splitのクエリ生成を改善しました。session.conf.set("use_simplified_query_generation", True)を設定すると有効になります。データフレームの純粋なレイジー動作になる入力データフレームの内部実装での
cache_resultに対する必要性を削除しました。引数
seedが複数の呼び出しやセッションにわたって再現性のある結果で期待通りに動作するようになりました。
include_decimalがTrueに設定されている場合、DataFrame.fillnaとDataFrame.replaceの両方で、intとfloatをDecimal列に入れられるようになります。一般公開に伴い、次に挙げる
files.pyのストアドプロシージャ関数とUDFに関するドキュメントを追加しました。SnowflakeFile.writeSnowflakeFile.writelinesSnowflakeFile.writeable
SnowflakeFileとSnowflakeFile.open()のドキュメントに若干の変更が行われました。
バグ修正¶
エラーが発生する以下の関数のバグを修正しました。
.cast()が出力に適用されます。from_jsonsize
Snowparkローカルテストの更新¶
バグ修正¶
空のグループでも行が生成される集計のバグを修正しました。
行が正しくドロップされない
Dataframe.except_のバグを修正しました。フィルターされた列をキャストすると
to_timestampが失敗するバグを修正しました。
Snowpark Pandas API の更新¶
新機能¶
Series.str.__getitem__(Series.str[...])のリスト値に対するサポートを追加しました。GROUP BYの操作で
pd.Grouperオブジェクトに対するサポートを追加しました。freqを指定すると、引数sort、closed、label、conventionのデフォルト値がサポートされます。startまたはstart_dayの場合はoriginがサポートされます。新しいパラメーター
relaxed_orderingを導入することで、pd.read_snowflakeで、名前付きデータソース(テーブルやビューなど)とクエリデータソースの両方に対して、緩和された一貫性と順序保証をサポートするようになりました。
改善¶
QUOTED_IDENTIFIERS_IGNORE_CASEがセットされていることが判明するたびに警告を発し、ユーザーに設定解除が求められます。index_labelの場合、DataFrame.to_snowflakeおよびSeries.to_snowflakeにおけるindex=Trueの欠落に対する処理が改善されました。ValueErrorを発する代わりに、インデックス列にシステム定義のラベルが使用されます。関数名がサポートされていない場合の
groupby、DataFrame、Series.aggのエラーメッセージを改善しました。
Snowparkローカルテストの更新¶
改善¶
QUOTED_IDENTIFIERS_IGNORE_CASEがセットされていることが判明するたびに警告を発し、ユーザーに設定解除が求められます。index_labelの場合、DataFrame.to_snowflakeおよびSeries.to_snowflakeにおけるindex=Trueの欠落に対する処理が改善されました。ValueErrorを発する代わりに、インデックス列にシステム定義のラベルが使用されます。関数名がサポートされていない場合の
groupby or DataFrame or Series.aggのエラーメッセージを改善しました。
バージョン1.29.1(2025-03-12)¶
バグ修正¶
ストアドプロシージャとSnowbooksでの使用を妨げる
DataFrameReader.dbapi(プライベートプレビュー)のバグを修正しました。
バージョン1.29.0(2025-03-05)¶
新機能¶
functions.pyでのAI対応関数のサポートを追加しました(プライベートプレビュー)。ai_filterai_aggsummarize_agg
functions.py(プライベートプレビュー)で、以下の関連関数を持つ新しいFILE SQLタイプに対するサポートが追加されました。
fl_get_content_type
fl_get_etag
fl_get_file_type
fl_get_last_modified
fl_get_relative_path
fl_get_scoped_file_url
fl_get_size
fl_get_stage
fl_get_stage_file_url
fl_is_audio
fl_is_compressed
fl_is_document
fl_is_image
fl_is_videoArtifact Repository(プライベートプレビュー)を使用したPyPiからのサードパーティパッケージのインポートに対するサポートを追加しました。
ストアドプロシージャやユーザー定義関数を登録する際、アーティファクトリポジトリとパッケージをそれぞれ指定できるように、キーワード引数
artifact_repositoryおよびpackagesを使用します。サポート対象のAPIsは以下の通りです。
Session.sproc.register
Session.udf.register
Session.udaf.register
Session.udtf.register
functions.sproc
functions.udf
functions.udaf
functions.udtf
functions.pandas_udf
functions.pandas_udtf
改善¶
ストアドプロシージャの登録時に、
snowflake-snowpark-pythonパッケージの互換性に関するバージョン検証警告が改善されました。メジャーバージョンとマイナーバージョンが一致しない場合にのみ警告が発せられ、バグ修正バージョンの違いについては警告を発さなくなります。cloudpickleの依存関係を改善し、以前のバージョンに加えて
cloudpickle==3.0.0にも対応するようになります。
バグ修正¶
スレッドセーフセッションが無効の場合に、多数の値を持つDataframeを作成すると
Unsupported feature 'SCOPED_TEMPORARY'.エラーが発生するバグを修正しました。DataFrameがステージファイルを読み込んで作成され、CTEの最適化が有効になっている場合に、
df.describeが内部SQL実行エラーを発生させるバグを修正しました。
session.conf.set("use_simplified_query_generation", True)を使用して簡易クエリ生成を有効にした場合、df.order_by(A).select(B).distinct()が無効なSQLを生成するバグを修正しました。
簡易クエリ生成をデフォルトで無効にしました。
Snowpark Pandas API の更新¶
改善¶
テーブルが存在しない場合の
pd.to_snowflake、DataFrame.to_snowflake、Series.to_snowflakeのエラーメッセージを改善しました。
pd.to_snowflake、DataFrame.to_snowflake、Series.to_snowflakeのif_existsパラメーターのdocstringの可読性を改善しました。SnowparkオブジェクトでUDFsを使用するすべてのpandas関数のエラーメッセージを改善しました。
バグ修正¶
Series.rename_axisでAttributeErrorが発生するバグを修正しました。
pd.get_dummiesがNULL/NaNの値をデフォルトで無視しなかったバグを修正しました。
pd.get_dummiesを繰り返し呼び出すと「列名の重複エラー」が発生するバグを修正しました。
pd.get_dummiesで、列のリストを渡すと、出力DataFrameに誤った列ラベルが生成されるバグを修正しました。
pd.get_dummiesを更新し、intではなくbool値を返すようにしました。
Snowparkローカルテストの更新¶
新機能¶
range_betweenウィンドウ関数にリテラル値のサポートを追加しました。
バージョン1.28.0(2025-02-20)¶
新機能¶
functions.pyで以下の関数のサポートを追加しました。normalrandn
Dataframe.union_by_nameとDataframe.union_all_by_nameにallow_missing_columnsパラメーターのサポートを追加しました。
改善¶
競合を避けるためにオブジェクト名のランダム生成を改善しました。
Dataframe.distinctのクエリ生成を改善し、SELECTの代わりにSELECT DISTINCTを生成し、GROUP BYの全列を生成するようにしました。この機能を無効にするには、session.conf.set("use_simplified_query_generation", False)をセットします。
非推奨¶
Snowpark Python関数
snowflake_cortex_summarizeが廃止予定になりました。ユーザーはsnowflake-ml-pythonをインストールし、代わりにsnowflake.cortex.summarize関数を使用することができます。Snowpark Python関数
snowflake_cortex_sentimentが廃止予定になりました。ユーザーはsnowflake-ml-pythonをインストールし、代わりにsnowflake.cortex.sentiment関数を使用することができます。
バグ修正¶
複数のクエリを生成するDataFramesにおいて、セッションレベルのクエリタグがスタックトレースによって上書きされるバグを修正しました。これで、
session.conf.set("collect_stacktrace_in_query_tag", True)の場合、クエリタグはスタックトレースにのみセットされるようになります。Session._write_pandasで、Snowpark pandasオブジェクトを書き込む際にSession._write_modin_pandas_helperにuse_logical_typeのパラメーターを誤って渡していたバグを修正しました。SQLオプション生成において、複数の値が正しくフォーマットされないバグを修正しました。
Session.catalogで、データベースまたはスキーマの空文字列が正しく処理されず、誤ったSQLステートメントを生成していたバグを修正しました。
実験的機能¶
Snowflakeテーブルへのpyarrowテーブルの書き込みに対するサポートを追加しました。
Snowpark Pandas API の更新¶
新機能¶
Snowflake Cortex関数
SummarizeおよびSentimentの適用に対するサポートを追加しました。Series.str.getにおけるリスト値のサポートを追加しました。
バグ修正¶
applyで、kwargsが正しく適用関数に渡されないバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
- 以下の関数のサポートを追加しました。
hourminute
CSVリーダーにNULL_IFパラメーターのサポートを追加しました。
CSVsをロードする場合の
date_format、datetime_format、timestamp_formatオプションに対するサポートを追加しました。
バグ修正¶
DataFrame.joinで、列のタイプに誤りがあったバグを修正しました。whenステートメントで、otherwise句の結果が不正になるバグを修正しました。
バージョン1.27.0(2025-02-05)¶
新機能¶
functions.py で以下の関数のサポートを追加しました。
array_reversedivnullmap_catmap_contains_keymap_keysnullifzerosnowflake_cortex_sentimentacoshasinhatanhbit_lengthbitmap_bit_positionbitmap_bucket_numberbitmap_construct_aggcbrtequal_nullfrom_jsonifnulllocaltimestampmax_bymin_bynth_valuenvloctet_lengthpositionregr_avgxregr_avgyregr_countregr_interceptregr_r2regr_sloperegr_sxxregr_sxyregr_syytry_to_binarybase64base64_decode_stringbase64_encodeeditdistancehexhex_encodeinstrlog1plog2log10percentile_approxunbase64DataFrame.create_dataframeを呼び出す際にスキーマ文字列(暗黙の構造体構文を含む)を指定できるようになりました。DataFrameWriter.insert_into/insertIntoのサポートを追加しました。この方法はローカルテストモードもサポートしています。DataFrame.create_temp_viewで仮ビューを作成できるようになりました。ビューが既に存在する場合は失敗します。関数
map_catおよびmap_concatにおいて、複数列のサポートを追加しました。DataFrame.with_columnとDataFrame.with_columnsで元の列の並び順を維持するためのオプションkeep_column_orderを追加しました。StructType列でのフィールドの名前変更や追加を可能にするオプションを列キャストに追加しました。ArrayTypeにcontains_null parameterのサポートを追加しました。ステージからファイルを読み込んで作成された DataFrame から
DataFrame.create_or_replace_temp_view経由で仮ビューを作成する機能を追加しました。MapTypeへのvalue_contains_nullパラメーターのサポートを追加しました。現在の環境がインタラクティブなものであるかどうかを示すテレメトリーにインタラクティブを追加しました。
現在のバージョンから/で始まるファイルパスを読み込めるように、Native Appsで
session.file.getを許可します。DataFrame.pivot以降、複数の集計関数をサポートするようになりました。
実験的機能¶
Snowflakeオブジェクトを管理する
Session.catalogクラスを追加しました。Session.catalogからアクセスできます。snowflake.coreはこの機能に必要な依存関係です。
ステージ上でJSONファイルを読み込む際に、ユーザー入力のスキーマ(複数可)を許可しています。
DataFrame.create_dataframeを呼び出す際にスキーマ文字列(暗黙の構造体構文を含む)を指定できるようになりました。
改善¶
README.mdを更新し、cosignを使用したパッケージ署名の検証方法の説明を追加しました。
バグ修正¶
ローカルテストモードで、列に0が含まれる必要がある場合にNoneが含まれるバグを修正しました。
StructField.from_jsonでtzinfoを含むTimestampTypesが正しく解析されないバグを修正しました。function date_formatで入力列が日付タイプまたはタイムスタンプタイプの場合にエラーとなるバグを修正しました。DataFrameで、NULL値が挿入できない列にNULL値が挿入されてしまうバグを修正しました。
関数
replaceおよびlitにおいて、列式オブジェクトを渡すとタイプヒントアサーションエラーが発生するバグを修正しました。pandas_udfおよびpandas_udtfにおいて、セッションパラメーターが誤って無視されていたバグを修正しました。session.callを通して呼び出されたシステム関数で、タイプ変換エラーが発生するバグを修正しました。
Snowpark Pandas API の更新¶
新機能¶
Series.str.ljustおよびSeries.str.rjustのサポートを追加しました。Series.str.centerのサポートを追加しました。Series.str.padのサポートを追加しました。Snowpark Python関数
snowflake_cortex_sentimentの適用に対するサポートを追加しました。DataFrame.mapのサポートを追加しました。DataFrame.from_dictおよびDataFrame.from_recordsのサポートを追加しました。構造体型列で大文字と小文字が混在するフィールド名のサポートを追加しました。
SeriesGroupBy.uniqueのサポートを追加しました。以下のディレクティブによる
Series.dt.strftimeのサポートを追加しました。%d: ゼロ埋めした10進数としての月の日付。
%m: ゼロ埋めした10進数としての月。
%Y: 世紀を10進数で表した年。
%H: ゼロ埋めした10進数としての時間(24時間制)。
%M: ゼロ埋めした10進数としての分。
%S: ゼロ埋めした10進数としての秒。
%f: マイクロ秒を10進数で表し、6桁にゼロ埋め。
%j: ゼロ埋めした10進数としての年の日付。
%X: ロケールの適切な時間表現。
%%: リテラル「%」文字。
Series.betweenのサポートを追加しました。DataFrameGroupBy.applyでのinclude_groups=Falseのサポートを追加しました。Series.str.splitでのexpand=Trueのサポートを追加しました。DataFrame.popおよびSeries.popのサポートを追加しました。DataFrameGroupBy.aggとSeriesGroupBy.aggでfirstとlastのサポートを追加しました。Index.drop_duplicatesのサポートを追加しました。"count"、"median"、np.median、"skew"、"std"、np.std"var"、およびnp.varのpd.pivot_table()、DataFrame.pivot_table()、およびpd.crosstab()における集計のサポートを追加しました。
改善¶
可能な場合、numpy関数をSnowpark関数にマッピングすることで、
DataFrame.map、Series.apply、Series.mapのメソッドのパフォーマンスを改善しました。DataFrame.mapのドキュメントを追加しました。可能な場合、numpy関数をSnowpark関数にマッピングすることで、
DataFrame.applyのパフォーマンスを改善しました。Snowparkのpandasとscikit-learnの相互運用性の範囲に関するドキュメントを追加しました。
型ヒントが提供されていない場合、
Series.map、Series.apply、DataFrame.mapの関数の戻り値の型を推測します。交換プロトコルの呼び出し含むメソッド呼び出しをカウントするテレメトリーに
call_countを追加しました。