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 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_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_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 の更新¶
新機能¶
Added support for
DataFrame.to_excel
andSeries.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_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.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でテストされた最新バージョンはmodin
0.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対応関数のサポートを追加しました(プライベートプレビュー)。prompt
ai_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に更新しました。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
のサポートを追加しました。集計の
max
、mean
、median
、min
、sum
に対する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.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.write
SnowflakeFile.writelines
SnowflakeFile.writeable
SnowflakeFile
とSnowflakeFile.open()
のドキュメントに若干の変更が行われました。
バグ修正¶
エラーが発生する以下の関数のバグを修正しました。
.cast()
が出力に適用されます。from_json
size
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_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_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
で以下の関数のサポートを追加しました。normal
randn
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ローカルテストの更新¶
新機能¶
- 以下の関数のサポートを追加しました。
hour
minute
CSVリーダーにNULL_IFパラメーターのサポートを追加しました。
CSVsをロードする場合の
date_format
、datetime_format
、timestamp_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_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
を追加しました。