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.37.0(2025年8月18日)

新機能

  • functions.py で以下の xpath 関数のサポートを追加しました。

    • xpath

    • xpath_string

    • xpath_boolean

    • xpath_int

    • xpath_float

    • xpath_double

    • xpath_long

    • xpath_short

  • Session.write_arrow() 関数にある use_vectorized_scanner パラメーターのサポートを追加しました。

  • DataFrame プロファイラーは各クエリについて以下の情報を追加します:describe query timeexecution 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_optionsignore_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_dataframeSession.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_embed

    • try_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_CASTTrue の場合、データをロードする際ハードキャストの代わりに列は TRY_CAST ステートメントでラップされます。

  • DataFrameReaderINFER_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_processDataFrameReader.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 の更新

新機能

  • Added support for DataFrame.to_excel and Series.to_excel.

  • pd.read_featherpd.read_orc、および pd.read_stata のサポートを追加しました。

  • ハイブリッド実行決定に関するデバッグ情報を返す pd.explain_switch() のサポートを追加しました。

  • グローバルModinバックエンドが Pandas の場合、 pd.read_snowflake をサポートします。

  • pd.to_dynamic_tablepd.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_complete

    • ai_similarity

    • ai_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.traceDGQL から系統を取得する場合に Edge.properties を取得するためのサポートを追加しました。

  • テーブルが既に存在するかどうかを指定できるパラメーター table_existsDataFrameWriter.save_as_table に追加しました。これにより、コストがかかる可能性のあるテーブルルックアップをスキップできます。

バグ修正

  • ローカル関数として定義されている create_connection がマルチプロセッシングと互換性を持たない DataFrameReader.dbapi (プライベートプレビュー)のバグを修正しました。

  • TIMESTAMP_LTZ 型であるべきDatabricks TIMESTAMP 型が、Snowflake TIMESTAMP_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でテストされた最新バージョンは modin 0.33.1です。

新機能

  • ハイブリッド実行(プライベートプレビュー) のサポートを追加しました。from modin.config import AutoSwitchBackend; AutoSwitchBackend.enable() の実行により、pandas on Snowflakeは特定のpandas操作をローカルで実行するか、Snowflake上で実行するかを自動的に選択します。この機能はデフォルトで無効になっています。

改善

  • DataFrame.to_viewSeries.to_viewDataFrame.to_dynamic_table および Series.to_dynamic_table のために index パラメーターのデフォルト値を False に設定しました。

  • テーブル作成関数の iceberg_version オプションを追加しました。

  • 入力データのサイズを取得するクエリを以前に発行した insertrepr および 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記録を処理するための異なるモードに対するサポートが追加されました。現在、 PERMISSIVEDROPMALFORMEDFAILFAST がサポート対象になります。

  • 指定された ROWTAG がファイル内に見つからない場合のXMLリーダーのエラーメッセージが改善されました。

  • Dataframe.drop のクエリ生成が改善されました。SELECT * EXCLUDE () を使用してドロップされた列を除外できるようになります。この機能を有効にするには、 session.conf.set("use_simplified_query_generation", True) を設定します。

  • StructType.from_jsonVariantType のサポートを追加しました。

バグ修正

  • 外部データベース内のユニコードまたは二重引用符で囲まれた列名が正しく引用されないためにエラーが発生していた DataFrameWriter.dbapi (プライベートプレビュー)のバグを修正しました。

  • ネストされた OBJECT データの名前付きフィールドにスペースが含まれるとエラーになるバグを修正しました。

Snowparkローカルテストの更新

バグ修正

  • ソート方向を無視する snowflake.snowpark.functions.rank のバグを修正しました。

  • フィルターにかけたデータに対して不正な結果を引き起こす snowflake.snowpark.functions.to_timestamp_* のバグを修正しました。

Snowpark pandas API の更新

新機能

  • Series.str.getSeries.str.sliceSeries.str.__getitem__Series.str[...])のdict値に対するサポートを追加しました。

  • DataFrame.to_html のサポートを追加しました。

  • DataFrame.to_string および Series.to_string のサポートを追加しました。

  • pd.read_csv を使用してS3バケットからファイルを読み込むサポートを追加しました。

改善

  • iceberg_configDataFrame.to_icebergSeries.to_iceberg の必須パラメーターになります。

バージョン1.31.0(2025-04-24)

新機能

  • StoredProcedure.register():code:execute_as 引数の restricted caller パーミッションに対するサポートを追加しました。

  • DataFrame.to_pandas() における非選択ステートメントに対するサポートを追加しました。

  • Session.add_packagesSession.add_requirementsSession.get_packagesSession.remove_packageSession.clear_packagesartifact_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対応関数のサポートを追加しました(プライベートプレビュー)。

    • prompt

    • ai_filterprompt() 関数と画像ファイルに対するサポートを追加し、第2引数名を expr から file に変更)

    • ai_classify

改善

  • DataFrame.to_snowpark_pandasrelaxed_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.getItemsnowpark.snowflake.functions.getnull ではなく IndexError を返すバグを修正しました。

  • ローカルテストにおいて、 df.limit(0) の呼び出しが正しく適用されないバグを修正しました。

  • ローカルテストにおいて、空のテーブルに Table.merge を入力すると例外が発生するバグを修正しました。

Snowpark Pandas API の更新

依存関係の更新

  • modin を0.30.1から0.32.0に更新しました。

  • numpy 2.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 のサポートを追加しました。

  • 集計の maxmeanmedianminsum に対する DataFrame.groupby.resample のサポートを追加しました。

  • 次を使用したステージファイルの読み込み対するサポートを追加しました。

    • pd.read_excel

    • pd.read_html

    • pd.read_pickle

    • pd.read_sas

    • pd.read_xml

  • DataFrame.to_iceberg および Series.to_iceberg のサポートを追加しました。

  • Series.str.len でのdict値のサポートを追加しました。

改善

  • 高価なピボットステップを回避することで、 DataFrame.groupby.applySeries.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_decimalTrue に設定されている場合、 DataFrame.fillnaDataFrame.replace の両方で、 intfloatDecimal 列に入れられるようになります。

  • 一般公開に伴い、次に挙げる files.py のストアドプロシージャ関数とUDFに関するドキュメントを追加しました。

    • SnowflakeFile.write

    • SnowflakeFile.writelines

    • SnowflakeFile.writeable

  • SnowflakeFileSnowflakeFile.open() のドキュメントに若干の変更が行われました。

バグ修正

  • エラーが発生する以下の関数のバグを修正しました。.cast() が出力に適用されます。

    • from_json

    • size

Snowparkローカルテストの更新

バグ修正

  • 空のグループでも行が生成される集計のバグを修正しました。

  • 行が正しくドロップされない Dataframe.except_ のバグを修正しました。

  • フィルターされた列をキャストすると to_timestamp が失敗するバグを修正しました。

Snowpark Pandas API の更新

新機能

  • Series.str.__getitem__Series.str[...])のリスト値に対するサポートを追加しました。

  • GROUP BYの操作で pd.Grouper オブジェクトに対するサポートを追加しました。freq を指定すると、引数 sortclosedlabelconvention のデフォルト値がサポートされます。start または start_day の場合は origin がサポートされます。

  • 新しいパラメーター relaxed_ordering を導入することで、 pd.read_snowflake で、名前付きデータソース(テーブルやビューなど)とクエリデータソースの両方に対して、緩和された一貫性と順序保証をサポートするようになりました。

改善

  • QUOTED_IDENTIFIERS_IGNORE_CASE がセットされていることが判明するたびに警告を発し、ユーザーに設定解除が求められます。

  • index_label の場合、 DataFrame.to_snowflake および Series.to_snowflake における index=True の欠落に対する処理が改善されました。ValueError を発する代わりに、インデックス列にシステム定義のラベルが使用されます。

  • 関数名がサポートされていない場合の groupbyDataFrameSeries.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_filter

    • ai_agg

    • summarize_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_video

  • Artifact 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_snowflakeDataFrame.to_snowflakeSeries.to_snowflake のエラーメッセージを改善しました。

  • pd.to_snowflakeDataFrame.to_snowflakeSeries.to_snowflakeif_exists パラメーターのdocstringの可読性を改善しました。

  • SnowparkオブジェクトでUDFsを使用するすべてのpandas関数のエラーメッセージを改善しました。

バグ修正

  • Series.rename_axisAttributeError が発生するバグを修正しました。

  • 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 で以下の関数のサポートを追加しました。

    • normal

    • randn

  • Dataframe.union_by_nameDataframe.union_all_by_nameallow_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_helperuse_logical_type のパラメーターを誤って渡していたバグを修正しました。

  • SQLオプション生成において、複数の値が正しくフォーマットされないバグを修正しました。

  • Session.catalog で、データベースまたはスキーマの空文字列が正しく処理されず、誤ったSQLステートメントを生成していたバグを修正しました。

実験的機能

  • Snowflakeテーブルへのpyarrowテーブルの書き込みに対するサポートを追加しました。

Snowpark Pandas API の更新

新機能

  • Snowflake Cortex関数 Summarize および Sentiment の適用に対するサポートを追加しました。

  • Series.str.get におけるリスト値のサポートを追加しました。

バグ修正

  • apply で、kwargsが正しく適用関数に渡されないバグを修正しました。

Snowparkローカルテストの更新

新機能

  • 以下の関数のサポートを追加しました。
    • hour

    • minute

  • CSVリーダーにNULL_IFパラメーターのサポートを追加しました。

  • CSVsをロードする場合の date_formatdatetime_formattimestamp_format オプションに対するサポートを追加しました。

バグ修正

  • DataFrame.join で、列のタイプに誤りがあったバグを修正しました。

  • when ステートメントで、 otherwise 句の結果が不正になるバグを修正しました。

バージョン1.27.0(2025-02-05)

新機能

functions.py で以下の関数のサポートを追加しました。

  • array_reverse

  • divnull

  • map_cat

  • map_contains_key

  • map_keys

  • nullifzero

  • snowflake_cortex_sentiment

  • acosh

  • asinh

  • atanh

  • bit_length

  • bitmap_bit_position

  • bitmap_bucket_number

  • bitmap_construct_agg

  • cbrt

  • equal_null

  • from_json

  • ifnull

  • localtimestamp

  • max_by

  • min_by

  • nth_value

  • nvl

  • octet_length

  • position

  • regr_avgx

  • regr_avgy

  • regr_count

  • regr_intercept

  • regr_r2

  • regr_slope

  • regr_sxx

  • regr_sxy

  • regr_syy

  • try_to_binary

  • base64

  • base64_decode_string

  • base64_encode

  • editdistance

  • hex

  • hex_encode

  • instr

  • log1p

  • log2

  • log10

  • percentile_approx

  • unbase64

  • DataFrame.create_dataframe を呼び出す際にスキーマ文字列(暗黙の構造体構文を含む)を指定できるようになりました。

  • DataFrameWriter.insert_into/insertInto のサポートを追加しました。この方法はローカルテストモードもサポートしています。

  • DataFrame.create_temp_view で仮ビューを作成できるようになりました。ビューが既に存在する場合は失敗します。

  • 関数 map_cat および map_concat において、複数列のサポートを追加しました。

  • DataFrame.with_columnDataFrame.with_columns で元の列の並び順を維持するためのオプション keep_column_order を追加しました。

  • StructType 列でのフィールドの名前変更や追加を可能にするオプションを列キャストに追加しました。

  • ArrayTypecontains_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_jsontzinfo を含む 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.aggSeriesGroupBy.aggfirstlast のサポートを追加しました。

  • Index.drop_duplicates のサポートを追加しました。

  • "count""median"np.median"skew""std"np.std "var"、および np.varpd.pivot_table()DataFrame.pivot_table()、および pd.crosstab() における集計のサポートを追加しました。

改善

  • 可能な場合、numpy関数をSnowpark関数にマッピングすることで、 DataFrame.mapSeries.applySeries.map のメソッドのパフォーマンスを改善しました。

  • DataFrame.map のドキュメントを追加しました。

  • 可能な場合、numpy関数をSnowpark関数にマッピングすることで、 DataFrame.apply のパフォーマンスを改善しました。

  • Snowparkのpandasとscikit-learnの相互運用性の範囲に関するドキュメントを追加しました。

  • 型ヒントが提供されていない場合、 Series.mapSeries.applyDataFrame.map の関数の戻り値の型を推測します。

  • 交換プロトコルの呼び出し含むメソッド呼び出しをカウントするテレメトリーに call_count を追加しました。