Snowpark Library for Pythonの2025年リリースノート

この記事には、 Snowpark Library for Python のリリースノートが含まれています。また、該当する場合は以下が含まれます。

  • 動作の変更

  • 新機能

  • 顧客向けバグ修正

Snowflake は、 Snowpark Library for Python の更新にセマンティックバージョニングを使用します。

ドキュメントについては、 Python用Snowpark開発者ガイド をご参照ください。

警告:

Python 3.8が サポート終了 に達したため、Python 3.8でSnowpark-pythonを使用する際に非推奨の警告がトリガーされます。詳細については、 Snowflake Pythonランタイムのサポート をご参照ください。Snowpark Python 1.24.0は、 Anacondaのポリシー に従い、Python 3.8をサポートする最後のクライアントとサーバーバージョンとなります。既存のPython 3.8オブジェクトをPython 3.9以上にアップグレードしてください。

バージョン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オブジェクトを管理するための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 ` での :code:`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 を追加しました。