Python用Snowparkライブラリの2024年リリースノート¶
この記事には、 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.26.0(2024-12-05)¶
新機能¶
- Sessionクラスのプロパティ- versionとクラスメソッド- get_active_sessionのサポートを追加しました。
- 新しいメソッドと変数が追加され、データ型の取り扱いと JSON のシリアライズ/デシリアライズが強化されました。 - DataType、その派生クラス、および- StructFieldに対して:- type_name: データの型名を返します。
- simple_string: データの単純な文字列表現を提供します。
- json_value: データを JSON と互換性のある値として返します。
- json: データを JSON 文字列に変換します。
 
- ArrayType、- MapType、- StructField、- PandasSeriesType、- PandasDataFrameType、- StructTypeに対して:- from_json: これらの型を JSON データから作成できるようにします。
 
- MapTypeに対して:- keyType: マップのキー
- valueType: マップの値
 
 
- SessionBuilderのメソッド- appNameのサポートを追加しました。
- DataFrame.unpivotの- include_nulls引数のサポートを追加しました。
- functions.pyで以下の関数のサポートを追加しました。- size: 配列、オブジェクト、マップの列のサイズを取得するためのものです。
- collect_list:- array_aggのエイリアス。
- concat_ws_ignore_nulls: NULL値を無視して文字列を区切り文字で連結します。
- substringは- len引数をオプションにします。
 
- 内部使用用にセッションにパラメーター - ast_enabledを追加しました(デフォルト:- False)。
改善¶
- 以下を - DataFrame.create_or_replace_dynamic_tableに指定するサポートを追加しました。- iceberg_config: 以下のIceberg構成オプションを保持できるディクショナリ。- external_volume
- catalog
- base_location
- catalog_sync
- storage_serialization_policy
 
 
- DataFrame.print_schemaにネストされたデータ型のサポートを追加しました
- DataFrame.print_schemaへの- levelパラメーターのサポートを追加しました。
- 以下のサポートを追加することにより、 - DataFrameReaderおよび- DataFrameWriterAPI の柔軟性が向上しました。- DataFrameReaderと- DataFrameWriterに- formatメソッドを追加し、結果のロードまたはアンロード時にファイル形式を指定できるようにしました。
- DataFrameReaderに- formatと連動する- loadメソッドを追加しました。
- DataFrameWriterに- formatと連動する- saveメソッドを追加しました。
- DataFrameReaderと- DataFrameWriterの- optionsメソッドにキーワード引数の読み取りサポートを追加しました。
 
- Python 3.11のcloudpickle依存関係を緩和し、ビルド要件を簡素化しました。しかしPython 3.11では、 - cloudpickle==2.2.1が唯一のサポートバージョンです。
バグ修正¶
- ダイナミックピボットが一般公開されたため、ダイナミックピボット機能がプライベートプレビューであることを示す警告を削除しました。 
- session.read.optionsにおいて、- Falseのブール値が、生成されたファイル形式において- Trueとして誤って解析されていたバグを修正しました。
依存関係の更新¶
- python-dateutilにランタイム依存関係を追加しました。
Snowpark Pandas API の更新¶
新機能¶
- argがpandas- Seriesまたは- collections.abc.Mappingの場合の- Series.mapを部分的なサポートを追加しました。- __missing__を実装しているが- collections.defaultdictのインスタンスではない- dictのインスタンスはサポートされません。
- DataFrame.alignと- Series.alignの- axis=1と- axis=Noneへのサポートを追加しました。
- pd.json_normalizeのサポートを追加しました。
- axis=0、- freq=None、 および- limit=Noneで- GroupBy.pct_changeのサポートを追加しました。
- DataFrameGroupBy.__iter__および- SeriesGroupBy.__iter__のサポートを追加しました。
- np.sqrt、- np.trunc、- np.floor、numpy trig関数、- np.exp、- np.abs、- np.positive、および- np.negativeのサポートを追加しました。
- データフレーム交換プロトコルのメソッド - DataFrame.__dataframe__()の部分的なサポートを追加しました。
バグ修正¶
- シリーズから単一の列をセットすると、予期しない - None値になる- df.locのバグを修正しました。
改善¶
- pandasのピボット解除演算子には、センチネル値の代わりに UNPIVOT INCLUDE NULLS を使用してください。 
- pd.read_excelのドキュメントを改善しました。
バージョン1.25.0(2024-11-13)¶
新機能¶
- snowflake.snowpark.dataframeに以下の新しい関数を追加しました。- map
 
改善¶
- プロファイラーでターゲットステージがセットされていない場合、 - SnowparkSQLExceptionを発生させる代わりに、- Session.get_session_stageからのデフォルトステージが使用されます。
- Session.stored_procedure_profiler.set_active_profilerを呼び出す際に、大文字と小文字が混在する入力を許可しました。
- DataFrameのアクション関数に、オープンテレメトリー APIs を使用した分散トレースを追加しました。- cache_result
 
- ログからopentelemetry警告を削除しました。 
バグ修正¶
- In式がselectで使用された場合のアクション前とアクション後のクエリ伝搬を修正しました。
- Session.stored_procedure_profilerが無効の場合に- Session.stored_procedure_profiler.get_outputを呼び出すとエラー- AttributeErrorが発生するバグを修正しました。
依存関係の更新¶
- ランタイムに - protobuf>=5.28と- tzlocalへの依存関係を追加しました。
- 開発プロファイルに - protoc-wheel-0への依存関係を追加しました。
- snowflake-connector-python>=3.12.0, <4.0.0が必要です(- >=3.10.0でした)。
Snowpark Pandas API の更新¶
新機能¶
- Index.to_numpyのサポートを追加しました。
- axis=0向けに- DataFrame.alignと- Series.alignのサポートを追加しました。
- snowflake.snowpark.functions.windowのサポートを追加しました。
- pd.read_pickleのサポートを追加しました(処理にネイティブpandasを使用)。
- pd.read_htmlのサポートを追加しました(処理にネイティブpandasを使用)。
- pd.read_xmlのサポートを追加しました(処理にネイティブpandasを使用)。
- GroupBy.aggregate、- DataFrame.aggregate、 および- Series.aggregateの集計関数- "size"と- lenのサポートを追加しました。
- Series.str.lenにおけるリスト値のサポートを追加しました。
バグ修正¶
- 単一列のデータフレームを単一の呼び出し可能な関数(例: - pd.DataFrame([0]).agg(np.mean))で集計すると、結果の転置に失敗するバグを修正しました。
- 次の - DataFrame.dropna()のバグを修正しました。- 空の - subset(例:- [])を、列がないのではなくすべての列を指定したものとして扱う。
- その列だけをフィルターするのではなく、スカラー - subsetに対して- TypeErrorを発生させる。
- インデックス内の列でフィルターをかける代わりに、 - pandas.Indexのタイプ- subsetに対して- ValueErrorを発生させる。
 
- ノートブック環境でダイナミックピボットを使用する際の - TableNotFoundErrorを軽減するための、スコープ付き読み取り専用テーブルの作成。
- axis = 1のとき、concat dataframeまたはseriesオブジェクトが同じdataframeから来ている場合のバグを修正しました。 
改善¶
- 不要な結合とテンポラリテーブルの作成を排除することで、スカラーx値を使用した - np.whereを改善しました。
- 結合でピボットをフラット化することで、 - get_dummiesパフォーマンスを向上しました。
Snowparkローカルテストの更新¶
新機能¶
- snowflake.snowpark.functionsモジュールでは利用できない機能のパッチのサポートを追加しました。
- snowflake.snowpark.functions.any_valueのサポートを追加しました。
バグ修正¶
- Table.updateが- VariantType、- MapType、- ArrayTypeのデータ型を処理できないバグを修正しました。
- DataFrame.joinで列のエイリアスが正しく解決されず、結合された DataFrame から列を選択する際にエラーが発生するバグを修正しました。
- ターゲットテーブルのインデックスがデフォルトの - RangeIndexでない場合に- Table.updateと- Table.mergeが失敗することがあるバグを修正しました。
バージョン1.24.0(2024-10-28)¶
新機能¶
- Sessionクラスをスレッドセーフに更新しました。これにより、 DataFrame 変換、 DataFrame アクション、 UDF とストアドプロシージャの登録、および同じ- Sessionオブジェクトを使用する場合の同時ファイルアップロードが可能になります。- この機能はデフォルトでは無効になっており、アカウントの - FEATURE_THREAD_SAFE_PYTHON_SESSIONを- Trueに設定することで有効になります。
- 複数のスレッドがセッションを使用しているときに、データベースやスキーマの変更などのセッション構成を更新すると、予期しない動作になることがあります。 
- 有効にすると、 - DataFrame.queriesAPI から返される内部的に作成された仮テーブル名の一部が論的で確定的ではなくなり、 DataFrame アクションの実行時に異なる場合があります。これは明示的にユーザーが作成した仮テーブルには影響しません。
 
- session.lineage.traceAPI に「サービス」ドメインのサポートを追加しました。
- デイジーチェーンをサポートするため、 - DataFrameWriterの以下のメソッドへのサポートを追加しました。- option
- options
- partition_by
 
- snowflake_cortex_summarizeのサポートを追加しました。
改善¶
- Pythonで使用できるように、関数 - snowflake.snowpark.functions.array_removeの以下の新機能を改善しました。
- 制限後にソートが実行された場合、 SQL の簡略化を無効にします。 - 以前は、 - df.sort().limit()と- df.limit().sort()は、limitの前にsortを付けて同じクエリを生成していました。現在では、- df.limit().sort()は、- df.limit().sort()を読み取るクエリを生成します。
- df.limit().sort()に生成されるクエリのパフォーマンスが向上します。これは、レコード数が満たされるとすぐにテーブルスキャンが停止されるためです。
 
バグ修正¶
- 仮テーブルの自動クリーンアップが非同期クエリの実行結果に干渉するバグを修正しました。 
- DataFrame.analytics.time_series_agg関数で、同じスライディング間隔で複数のデータを扱う際のバグを修正しました。
- Icebergスキーマの構造化オブジェクトのフィールド名に大文字と小文字の不一致が生じるバグを修正しました。 
非推奨¶
- Python 3.8が サポート終了 に達したため、Python 3.8でSnowpark-pythonを使用する際に非推奨の警告がトリガーされます。詳細については、 Snowflake Pythonランタイムのサポート をご参照ください。 
- Snowpark 1.24.0は、 Anacondaのポリシー に従い、Python 3.8をサポートする最後のクライアントとサーバーバージョンです。既存のPython 3.8オブジェクトをPython 3.9以上にアップグレードしてください。 
Snowpark Pandas API の更新¶
新機能¶
- np.subtract、- np.multiply、- np.divide、 および- np.true_divideのサポートを追加しました。
- __array_ufunc__の使用状況を追跡できるようになりました。
- np.float_power、- np.mod、- np.remainder、- np.greater、- np.greater_equal、- np.less、- np.less_equal、- np.not_equal、および- np.equalのnumpy互換性サポートを追加しました。
- np.log、- np.log2、および- np.log10のnumpy互換性サポートを追加しました。
- DataFrameGroupBy.bfill、- SeriesGroupBy.bfill、- DataFrameGroupBy.ffill、 および- SeriesGroupBy.ffillのサポートを追加しました。
- Resamplerを使用した- onパラメーターのサポートを追加しました。
- value_counts()でタイムデルタ入力のサポートを追加しました。
- Snowpark Python関数 - snowflake_cortex_summarizeの適用サポートを追加しました。
- DataFrame.attrsおよび- Series.attrsのサポートを追加しました。
- DataFrame.styleのサポートを追加しました。
- np.full_likeのnumpy互換性サポートを追加しました。
改善¶
- 行キーがスライスである場合に、 - headおよび- ilocに対して生成される SQL クエリが改善されました。
- Series、- DataFrame、- Series.dt、および- DatetimeIndexで- tz_convertと- tz_localizeに不明なタイムゾーンを渡す際のエラーメッセージを改善しました。
- Series、- DataFrame、- Series.dt、および- DatetimeIndexで- tz_convertと- tz_localizeのドキュメントを改善し、サポートされるタイムゾーン形式を明記しました。
- Snowpark関数を使用する際に、 - df.applyと- series.apply(さらには- mapと- applymap)のkwargsサポートをさらに追加しました。これにより、最初の引数がpandasオブジェクトでないapplyと関数の間で位置に依存しない互換性を保つことができます。
- 行キーがスカラーの場合に - ilocおよび- iatに生成される SQL クエリを改善しました。
- iterrowsのすべての結合を削除しました。
- サポートされていない機能を反映するため、 - Series.mapのドキュメントを改善しました。
- 多くのscikit-learn関数で内部的に使用される - np.may_share_memoryのサポートを追加しました。このメソッドは、Snowpark pandasオブジェクトで呼び出されると、常にfalseを返します。
バグの修正¶
- 入力にタイムデルタ列が含まれる場合、 - DataFrameと- Series- pct_change()が- TypeErrorを発生させるバグを修正しました。
- replace()が- Timedelta型を- replace()経由で正しく伝搬しないことがあったバグを修正しました。代わりに、- Timedeltaに対して- replace()の- NotImplementedErrorが発生します。
- DataFrameと- Series- round()が- Timedelta列に対して- AssertionErrorを発生させるバグを修正しました。代わりに、- Timedeltaに対して- round()の- NotImplementedErrorが発生します。
- 新しいインデックスが元のインデックスと重複しない型を持つシリーズである場合に、 - reindexに失敗するバグを修正しました。
- DataFrameGroupBy オブジェクトに対して - __getitem__を呼び出すと、- as_index=Falseの場合に常に DataFrameGroupBy オブジェクトを返すバグを修正しました。
- 既存の列にタイムデルタ値を挿入すると、 - NotImplementedErrorを発生させる代わりに値を警告なしに整数に変換してしまうバグを修正しました。
- axis=0とaxis=1の - DataFrame.shift()がタイムデルタ型の伝播に失敗するバグを修正しました。
- DataFrame.abs()、- DataFrame.__neg__()、- DataFrame.stack()、および- DataFrame.unstack()は、タイムデルタタイプの伝搬に失敗する代わりに、タイムデルタ入力に対して- NotImplementedErrorを発生させるようになりました。
Snowparkローカルテストの更新¶
バグ修正¶
- 入力列名に対して - DataFrame.aliasが- KeyErrorを発生させるバグを修正しました。
- データに空の文字列が含まれる場合に、Snowflakeステージで - to_csvが失敗するバグを修正しました。
バージョン1.23.0(2024-10-09)¶
新機能¶
- snowflake.snowpark.functionsに以下の新しい関数を追加しました。- make_interval
 
- 列順が TIMESTAMP または DATE 型の場合に、 - Window.range_between()Snowflakeインターバル定数を使用できるようにサポートを追加しました。
- ファイル書き込みのサポートを追加しました。この機能は現在プライベートプレビュー中です。 
- QueryRecordに- thread_idを追加し、クエリ履歴を送信するスレッドIDを追跡できるようにしました。
- Session.stored_procedure_profilerのサポートを追加しました。
バグ修正¶
- ストアドプロシージャまたは UDxF を型ヒントで登録すると、関数からデフォルト値を読み込もうとしたときに「 - NoneTypehas no- len()」という警告が出るバグを修正しました。
Snowpark Pandas API の更新¶
新機能¶
- TimedeltaIndex.meanメソッドのサポートが追加されました。
- axis=0の- Timedelta列を- aggまたは- aggregateで集計する場合の一部サポートを追加しました。
- pd.merge_asof向けに- by、- left_by、- right_by、- left_index、 および- right_indexのサポートを追加しました。
- Session.query_historyにパラメーター- include_describeを渡すためのサポートを追加しました。
- DatetimeIndex.meanと- DatetimeIndex.stdメソッドのサポートを追加しました。
- Resampler.asfreq、- Resampler.indices、- Resampler.nunique、 および- Resampler.quantileのサポートを追加しました。
- closed = "left"を使用した- resample頻度- W、- ME、- YEのサポートを追加しました。
- pairwise = Falseとint- windowに- DataFrame.rolling.corrと- Series.rolling.corrのサポートを追加しました。
- Rollingに文字列時間ベースの- windowと- min_periods = Noneのサポートを追加しました。
- DataFrameGroupBy.fillnaおよび- SeriesGroupBy.fillnaのサポートを追加しました。
- 遅延 - Seriesオブジェクトを使用した- DataFrameと- Indexオブジェクトを- data、- index、および- columns引数として構築するためのサポートを追加しました。
- DataFrame/- Series- dataに存在しない- indexと- columnの値を使用して- Seriesと- DataFrameオブジェクトを構築するためのサポートを追加しました。
- pd.read_sasのサポートを追加しました(処理にネイティブpandasを使用)。
- rolling().count()と- expanding().count()を- Timedelta系列と列に適用するためのサポートを追加しました。
- pd.bdate_rangeと- pd.date_rangeの両方で- tzのサポートを追加しました。
- Series.itemsのサポートを追加しました。
- pd.to_datetimeでの- errors="ignore"のサポートを追加しました。
- DataFrame.tz_localizeおよび- Series.tz_localizeのサポートを追加しました。
- DataFrame.tz_convertおよび- Series.tz_convertのサポートを追加しました。
- SnowparkのPython関数(例: - sin)を- Series.map、- Series.apply、- DataFrame.apply、 および- DataFrame.applymapで適用するサポートを追加しました。
改善¶
- TIMESTAMP_TZ 型の元のタイムゾーンオフセットを維持するように - to_pandasを改良しました。
- TIMESTAMP_TZ 型の - dtypeの結果を改善し、正しいタイムゾーンオフセットを表示するようにしました。
- TIMESTAMP_LTZ 型の - dtypeの結果を改善し、正しいタイムゾーンを表示するようにしました。
- groupby集計で - numeric_onlyにブール値以外を渡したときのエラーメッセージを改善しました。
- sort_valuesの並べ替えアルゴリズムに関する不要な警告を削除しました。
- SCOPED オブジェクトを内部で仮テーブルを作成するために使用します。SCOPED オブジェクトは、sproc内で作成された場合はsprocスコープになり、それ以外の場合はセッションスコープになり、スコープの終了時にオブジェクトは自動的にクリーニングされます。 
- 予想外の遅さのマテリアライゼーションにつながる操作に対する警告メッセージを改善しました。 
- Series.applyの- convert_dtypeに関する不要な警告メッセージを削除しました。
バグ修正¶
- Series/- DataFrameから作成された- Indexオブジェクトが、元の- Series/- DataFrameにインプレース更新が適用された後、- Series/- DataFrameのインデックス名が誤って更新されるバグを修正しました。
- Timedelta列を印刷する際に表示されることがあった無用な- SettingWithCopyWarningを抑制しました。
- 他の - Seriesオブジェクトから派生した- Seriesオブジェクトの- inplace引数を修正しました。
- 系列名がインデックス列名と重なる場合、 - Series.sort_valuesに失敗するバグを修正しました。
- データフレームをトランスポーズすると、 - Timedeltaインデックスレベルが整数列レベルにマップされるバグを修正しました。
- タイムデルタ列の - Resamplerメソッドが整数の結果を生成するバグを修正しました。
- pd.to_numeric()が- Timedeltaの入力を整数に変換せずに- Timedeltaのままにするバグを修正しました。
- DataFrame の単一行または複数行にSeries値を設定する際に設定される - locを修正しました。
バージョン1.22.1(2024-09-11)¶
- これは1.22.0の再リリースです。リリース内容の詳細については、1.22.0リリースノートをご参照ください。 
バージョン1.22.0(2024-09-10)¶
新機能¶
- snowflake.snowpark.functionsに以下の新しい関数を追加しました。- array_remove
- ln
 
改善¶
- use_logical_typeオプションをより明示することにより、- Session.write_pandasのドキュメントを改善しました。
- 以下を - DataFrameWriter.save_as_tableに指定するサポートを追加しました。- enable_schema_evolution
- data_retention_time
- max_data_extension_time
- change_tracking
- copy_grants
- iceberg_config- 以下のIceberg構成オプションを保持できる辞書。- external_volume
- catalog
- base_location
- catalog_sync
- storage_serialization_policy
 
 
- 以下を - DataFrameWriter.copy_into_tableに指定するサポートを追加しました。- iceberg_config- 以下のIceberg構成オプションを保持できる辞書。- external_volume
- catalog
- base_location
- catalog_sync
- storage_serialization_policy
 
 
- 以下のパラメーターを - DataFrame.create_or_replace_dynamic_tableに指定するサポートを追加しました。- mode
- refresh_mode
- initialize
- clustering_keys
- is_transient
- data_retention_time
- max_data_extension_time
 
バグ修正¶
- 外部で定義されたファイルフォーマットで - PARSE_HEADER = Trueを設定する際にエラーが発生する- session.read.csvのバグを修正しました。
- セット操作からのクエリ生成において、子クエリが共通のサブクエリを持つ場合に重複したクエリが生成されるバグを修正しました。 
- データベースやスキーマを切り替えた後に存在しないステージを参照していた - session.get_session_stage内のバグを修正しました。
- Snowpark pandasプラグインを明示的に初期化せずに - DataFrame.to_snowpark_pandasを呼び出すとエラーが発生するバグを修正しました。
- 動的テーブルの作成で - explode関数を使用すると、- outerパラメーターのブーリアン型キャストが不適切なため、 SQL コンパイルエラーが発生するバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
- UDF 呼び出しの入力として列を渡す際の型強制のサポートを追加しました。 
- Index.identicalのサポートを追加しました。
バグ修正¶
- DataFrameWriter.save_as_tableの切り捨てモードが、 DataFrames を誤って処理して既存テーブルの列のサブセットのみを含むバグを修正しました。
- 関数 - to_timestampが、列のデータ型のデフォルトタイムゾーンを設定しないバグを修正しました。
Snowpark Pandas API の更新¶
新機能¶
- 以下の機能を含む、 - Timedelta型の限定サポートを追加しました。Snowpark pandasは、サポートされていない- Timedeltaユースケースに対して- NotImplementedErrorを発生します。- copy、- cache_result、- shift、- sort_index、- assign、- bfill、- ffill、- fillna、- compare、- diff、- drop、- dropna、- duplicated、- empty、- equals、- insert、- isin、- isna、- items、- iterrows、- join、- len、- mask、- melt、- merge、- nlargest、- nsmallest、- to_pandasを介した- Timedelta型の追跡をサポートします。
- astype経由での非タイムデルタからタイムデルタへの変換をサポートします。
- Timedeltaをサポートしていない残りのメソッドに対しては、- NotImplementedErrorが発生します。
- Timedeltaを取得するために2つのタイムスタンプを減算することをサポートします。
- Timedeltaデータ列よるインデックスをサポートします。
- タイムスタンプや - Timedeltaの加算や減算をサポートします。
- 2つの - Timedelta値間の2進演算をサポートします。
- 2進演算と、 - Timedelta間の値の比較をサポートします。
- 遅延 - TimedeltaIndexをサポートします。
- pd.to_timedeltaをサポートします。
- GroupBy集計- min、- max、- mean、- idxmax、- idxmin、- std、- sum、- median、- count、- any、- all、- size、- nunique、- head、- tail、- aggregateをサポートします。
- GroupByフィルター処理を- firstと- lastでサポートします。
- TimedeltaIndex属性を- days、- seconds、- microseconds、および- nanosecondsでサポートします。
- axis=0と- axis=1のタイムスタンプ列で- diffをサポートします。
- ceil、- floor、および- roundで- TimedeltaIndexメソッドをサポートします。
- TimedeltaIndex.total_secondsメソッドをサポートします。
 
- インデックスの算術演算子と比較演算子のサポートを追加しました。 
- Series.dt.roundのサポートを追加しました。
- DatetimeIndexのドキュメントページを追加しました。
- Index.name、- Index.names、- Index.rename、 および- Index.set_namesのサポートを追加しました。
- Index.__repr__のサポートを追加しました。
- DatetimeIndex.month_nameおよび- DatetimeIndex.day_nameのサポートを追加しました。
- Series.dt.weekday、- Series.dt.time、および- DatetimeIndex.timeのサポートを追加しました。
- Index.minおよび- Index.maxのサポートを追加しました。
- pd.merge_asofのサポートを追加しました。
- Series.dt.normalizeおよび- DatetimeIndex.normalizeのサポートを追加しました。
- Index.is_boolean、- Index.is_integer、- Index.is_floating、- Index.is_numeric、および- Index.is_objectのサポートを追加しました。
- DatetimeIndex.round、- DatetimeIndex.floor、および- DatetimeIndex.ceilのサポートを追加しました。
- Series.dt.days_in_monthおよび- Series.dt.daysinmonthのサポートを追加しました。
- DataFrameGroupBy.value_countsおよび- SeriesGroupBy.value_countsのサポートを追加しました。
- Series.is_monotonic_increasingおよび- Series.is_monotonic_decreasingのサポートを追加しました。
- Index.is_monotonic_increasingおよび- Index.is_monotonic_decreasingのサポートを追加しました。
- pd.crosstabのサポートを追加しました。
- pd.bdate_rangeのサポートを追加し、- pd.date_rangeと- pd.bdate_rangeの両方にビジネス頻度のサポート(B、 BME、 BMS、 BQE、 BQS、 BYE、 BYS)を含めました。
- DataFrame.reindexと- Series.reindex内の- labelsとして、遅延- Indexオブジェクトのサポートを追加しました。
- Series.dt.days、- Series.dt.seconds、- Series.dt.microseconds、 および- Series.dt.nanosecondsのサポートを追加しました。
- 数値型または文字列型の - Indexから- DatetimeIndexを作成できるようにサポートを追加しました。
- Timedeltaオブジェクトによる文字列インデックスのサポートを追加しました。
- Series.dt.total_secondsメソッドのサポートが追加されました。
改善¶
- 不要な結合を避けることにより、同じ DataFrame からの系列に対して操作が実行される場合の連結と結合のパフォーマンスが改善されました。 
- quoted_identifier_to_snowflake_typeをリファクタリングし、型がローカルにキャッシュされている場合にメタデータクエリを回避するようにしました。
- すべてのローカル入力ケースを処理できるように、 - pd.to_datetimeを改善しました。
- クライアントにデータをプルすることなく、別の遅延インデックスから遅延インデックスを作成します。 
- Indexビット演算子で - NotImplementedErrorが発生するようになりました。
- Index.namesがnon-list-likeオブジェクトに設定された場合、より明確なエラーメッセージを表示します。
- MultiIndex値がローカルにプルされるごとに警告を発生します。
- 仮テーブルの作成がトリガーされた場合、 - pd.read_snowflakeの警告メッセージに作成理由が含まれるように改善しました。
- DataFrame.set_index、または- DataFrame.indexや- Series.indexを設定する際に、先行評価を必要とするチェックを回避することで、パフォーマンスが改善されました。その結果、現在の- Seriesまたは- DataFrameオブジェクトの長さに一致しない新しいインデックスが発生しても、- ValueErrorは発生しなくなりました。その代わり、- Seriesまたは- DataFrameオブジェクトが提供されたインデックスよりも長い場合、- Seriesまたは- DataFrameの新しいインデックスは、「余分な」要素のために- NaN値で埋められます。それ以外の場合は、提供されたインデックスの余分な値が無視されます。
バグ修正¶
- pd.Timedeltaスカラーでナノ秒の無視を中止しました。
- 2項演算のツリーの - AssertionErrorを修正しました。
- 名前付き系列を使用した - Series.dt.isocalendar内のバグを修正しました。
- DataFrame 列から派生したSeriesオブジェクトの - inplace引数を修正しました。
- Series.reindexと- DataFrame.reindexが、結果インデックスの名前を正しく更新しないバグを修正しました。
- axis=1の指定時に- Series.takeがエラーを発生しなかったバグを修正しました。
バージョン1.21.1(2024-09-05)¶
バグ修正¶
- 非同期ジョブで - to_pandas_batchesを使用すると、非同期クエリ完了待ちの処理が不適切なためにエラーが発生するバグを修正しました。
バージョン1.21.0(2024-08-19)¶
新機能¶
- snowflake.snowpark.testing.assert_dataframe_equalのサポートを追加しました。これは2つのSnowpark DataFrames の等質性をチェックするユーティリティ関数です。
改善¶
- サーバー側の文字列サイズ制限のサポートを追加しました。 
- ストアドプロシージャ、 UDFs、 UDTFs をオプション引数付きで作成および呼び出しできるようにサポートを追加しました。 
- DataFrame.lineage.traceAPI に列系統のサポートを追加しました。
- INFER_SCHEMA_OPTIONS経由で- DataFrameReaderに- INFER_SCHEMAオプションを渡せるようにサポートを追加しました。
- Column.rlikeと- Column.regexpに- parametersパラメーターを渡せるようにサポートを追加しました。
- DataFrame が参照されなくなった(つまり、ガベージコレクションになった)ときに、現在のセッションで - df.cache_result()によって作成された仮テーブルを自動的にクリーンアップするサポートを追加しました。これはまだ実験的な機能で、デフォルトでは有効になっていません。- session.auto_clean_up_temp_table_enabledを- Trueに設定すると有効になります。
- snowflake.snowpark.functions.to_dateの- fmtパラメーターに文字列リテラルのサポートを追加しました。
バグ修正¶
- *列を選択するために生成される SQL のサブクエリが正しくないバグを修正しました。
- DataFrame.to_pandas_batchesで、pandas DataFrame に対して特定の変換が行われた場合に、間違った分離レベルのために反復子がエラーをスローすることがあるバグを修正しました。
- DataFrame.lineage.traceのバグを修正し、引用機能ビューの名前とバージョンを正しく分割できるようにしました。
- Column.isinで、空のリストを渡された場合に SQL の生成が不正になるバグを修正しました。
- list-like項目を持つセルを設定する際に、 - NotImplementedErrorが発生しないバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
- 以下の APIs のサポートを追加しました。 - snowflake.snowpark.functions- rank
- dense_rank
- percent_rank
- cume_dist
- ntile
- datediff
- array_agg
 
- snowflake.snowpark.column.Column.within_group
 
- モックプランの正規表現ステートメントにおけるフラグ解析のサポートを追加しました。これにより、上記の - rlikeと- regexpの変更でパリティを維持します。
バグ修正¶
- ウィンドウ関数 - LEADと- LAGがオプション- ignore_nullsを適切に処理しないバグを修正しました。
- テーブルマージ操作の挿入中に、値が結果 DataFrame に入力されないバグを修正しました。 
改善¶
- 整数インデックスに関するpandas - FutureWarningを修正しました。
Snowpark Pandas API の更新¶
新機能¶
- DataFrame.backfill、- DataFrame.bfill、- Series.backfill、 および- Series.bfillのサポートを追加しました。
- DataFrame.compareと- Series.compareのデフォルトパラメーターのサポートを追加しました。
- Series.dt.microsecondおよび- Series.dt.nanosecondのサポートを追加しました。
- Index.is_uniqueおよび- Index.has_duplicatesのサポートを追加しました。
- Index.equalsのサポートを追加しました。
- Index.value_countsのサポートを追加しました。
- Series.dt.day_nameおよび- Series.dt.month_nameのサポートを追加しました。
- Indexでのインデックス、たとえば - df.index[:10]のサポートを追加しました。
- DataFrame.unstackおよび- Series.unstackのサポートを追加しました。
- DataFrame.asfreqおよび- Series.asfreqのサポートを追加しました。
- Series.dt.is_month_startおよび- Series.dt.is_month_endのサポートを追加しました。
- Index.allおよび- Index.anyのサポートを追加しました。
- Series.dt.is_year_startおよび- Series.dt.is_year_endのサポートを追加しました。
- Series.dt.is_quarter_startおよび- Series.dt.is_quarter_endのサポートを追加しました。
- 遅延 - DatetimeIndexのサポートを追加しました。
- Series.argmaxおよび- Series.argminのサポートを追加しました。
- Series.dt.is_leap_yearのサポートを追加しました。
- DataFrame.itemsのサポートを追加しました。
- Series.dt.floorおよび- Series.dt.ceilのサポートを追加しました。
- Index.reindexのサポートを追加しました。
- DatetimeIndexプロパティに- year、- month、- day、- hour、- minute、- second、- microsecond、- nanosecond、- date、- dayofyear、- day_of_year、- dayofweek、- day_of_week、- weekday、- quarter、- is_month_start、- is_month_end、- is_quarter_start、- is_quarter_end、- is_year_start、- is_year_end、および- is_leap_yearのサポートを追加しました。
- Resampler.fillnaおよび- Resampler.bfillのサポートを追加しました。
- Timedelta列や- to_pandasの作成など、- Timedelta型の限定サポートを追加しました。
- Index.argmaxおよび- Index.argminのサポートを追加しました。
改善¶
- Snowpark pandasをインポートする際の公開プレビューの警告メッセージを削除しました。 
- SnowflakeQueryCompiler.is_series_likeメソッドから不要なカウントクエリを削除しました。
- Dataframe.columnsは、Snowpark Indexオブジェクトではなく、ネイティブのpandas Indexオブジェクトを返すようになりました。
- クエリコンパイラから - Indexを作成するために、リファクタリングして- Indexコンストラクターに- query_compiler引数を導入しました。
- pd.to_datetimeは、- Seriesオブジェクトの代わりに- DatetimeIndexオブジェクトを返すようになりました。
- pd.date_rangeは、- Seriesオブジェクトの代わりに- DatetimeIndexオブジェクトを返すようになりました。
バグ修正¶
- サポートされていない集計関数を - pivot_tableに渡すと、- KeyErrorではなく- NotImplementedErrorが発生するようにしました。
- サポートされていない集計に関するエラーメッセージとテレメトリから、軸ラベルと呼び出し可能な名前を削除しました。 
- sort_valuesの後に呼び出された- Series.drop_duplicatesと- DataFrame.drop_duplicatesにある- AssertionErrorを修正しました。
- 名前が指定されていない場合に結果フレームの列名が間違っている場合がある - Index.to_frame内のバグを修正しました。
- 一部のIndex docstringsが無視されるバグを修正しました。 
- 結果名が間違っている場合がある - Series.reset_index(drop=True)内のバグを修正しました。
- 基になるウィンドウ式内の正しい列による - Groupby.first/last順序付けで発生するバグを修正しました。
バージョン1.20.0(2024-07-17)¶
Snowpark Library for Pythonのバージョン1.20.0では、いくつかの新機能が導入されています。
新機能¶
- DataFrame内のテーブルストアドプロシージャ関数に、オープンテレメトリ APIs を使用した分散トレースを追加しました。- _execute_and_get_query_id
 
- arrays_zip関数のサポートを追加しました。
- 数値に対する不要なキャストを回避することにより、バイナリ列式と - df._inのパフォーマンスが向上しました。この最適化を有効にするには、- session.eliminate_numeric_sql_value_cast_enabled = Trueを設定します。
- ターゲットテーブルが存在せず、 - auto_create_table=Falseの場合に発生する、- write_pandasのエラーメッセージを改善しました。
- Snowparkの UDxF 関数にオープンテレメトリトレースを追加しました。 
- Snowparkのストアドプロシージャ登録にオープンテレメトリトレースを追加しました。 
- Session.query_tagのアプリ名を JSON 形式で設定する- Session.SessionBuilder.app_name関数に、- format_jsonと呼ばれる新しいオプションパラメーターを追加しました。デフォルトでは、このパラメーターは- Falseに設定されています。
バグ修正¶
- lag(x, 0)に対して生成された SQL が不正で、エラーメッセージ- argument 1 to function LAG needs to be constant, found 'SYSTEM$NULL_TO_FIXED(null)'が表示されて失敗するバグを修正しました。
Snowparkローカルテストの更新¶
新機能¶
- 以下の APIs のサポートを追加しました。 - snowflake.snowpark.functions- random
 
 
- モック関数を登録する際に、 - patch関数に新しいパラメーターを追加しました。- distinctにより、 SQL 関数を区別する必要がある場合に、代替関数を指定することができます。
- pass_column_indexは、入力データのために、- pandas.Indexを含むモック関数に名前付きパラメーター- column_indexを渡します。
- pass_row_indexは、現在関数が操作している0インデックスの行番号であるモック関数に、名前付きパラメーター- row_indexを渡します。
- pass_input_dataは、現在の式のために、入力データフレーム全体を含むモック関数に、名前付きパラメーター- input_dataを渡します。
- DataFrameWriter.save_as_tableメソッドにある- column_orderパラメーターのサポートを追加しました。
 
バグ修正¶
- DecimalTypeの列を- BinaryExpressionsで使用した場合、誤って整数精度に切り捨てられるバグを修正しました。
Snowpark pandas API の更新¶
新機能¶
- 以下の新しい API サポートを追加しました。 - DataFrames - DataFrame.nlargestおよび- DataFrame.nsmallest
- DataFrame.assign
- DataFrame.stack
- DataFrame.pivot
- DataFrame.to_csv
- DataFrame.corr
- DataFrame.corr
- DataFrame.equals
- DataFrame.reindex
- DataFrame.atおよび- DataFrame.iat
 
- Series - Series.nlargestおよび- Series.nsmallest
- Series.atおよび- Series.iat
- Series.dt.isocalendar
- Series.equals
- Series.reindex
- Series.to_csv
- Series.case_when。ただし、条件または置換が呼び出し可能な場合を除く。
- マテリアライズしたデータのある - series.plot()をローカルクライアントに
 
- GroupBy - DataFrameGroupBy.allおよび- DataFrameGroupBy.any
- DataFrameGroupByおよび- SeriesGroupBy集合- firstおよび- last
- DataFrameGroupBy.get_group
- SeriesGroupBy.allおよび- SeriesGroupBy.any
 
- 一般 - pd.pivot
- read_excel(処理にローカルpandasを使用)
- マテリアライズしたデータのある - df.plot()をローカルクライアントに
 
 
- 既存の APIs を以下のように拡張しました。 - DataFrame.sampleと- Series.sampleで- replaceと- frac > 1のサポートを追加しました。
- table内の値がシングルコードポイント文字列である- Series.str.translateの部分的サポートを追加しました。
- methodパラメーターが- fillnaで使用される場合の- limitパラメーターのサポートを追加しました。
 
- Indexとその APIs のドキュメントページを追加しました。
バグ修正¶
- スカラー - otherがリテラル0の場合に、np.whereとdf.whereを使用する際の問題を修正しました。
- Snowpark pandas - DataFrameまたは- Seriesを- dtype=np.uint64で変換する際の精度損失に関するバグを修正しました。
- pivot_tableの際、- indexと- columnsに DataFrame 内のすべての列が含まれる場合、- valuesが- indexに設定されるバグを修正しました。
改善¶
- Index.copy()のサポートを追加しました。
- Index APIs に - dtype、- values、- item()、- tolist()、- to_series()、および- to_frame()のサポートを追加しました。
- pd.pivot_tableと- DataFrame.pivot_tableで、行がない DataFrames のサポートを拡大しました。
- DataFrame.sort_indexと- Series.sort_indexで- inplaceパラメーターのサポートが追加されました。
バージョン1.19.0(2024-06-25)¶
Snowpark Library for Pythonのバージョン1.19.0では、いくつかの新機能が導入されています。
新機能¶
- to_boolean関数のサポートを追加しました。
- Indexとその APIs のドキュメントページを追加しました。
バグ修正¶
- テーブルのあるPythonストアドプロシージャをタスクで実行すると、戻り型が失敗するバグを修正しました。 
- DataFrame が500列を超える場合に、 - RecursionError: maximum recursion depth exceededで- df.dropnaが失敗するバグを修正しました。
- クエリの実行が終了するまで - AsyncJob.result("no_result")が待機しないバグを修正しました。
ローカルテストの更新¶
新機能¶
- UDFs およびストアドプロシージャを登録する場合の - strictパラメーターのサポートを追加しました。
バグ修正¶
- convert_timezoneで、- source_timezoneパラメーターの設定がエラーを返すバグを修正しました。
- DateType型の空のデータで DataFrame を作成すると- AttributeErrorが発生するバグを修正しました。
- 更新句があっても更新されない場合、テーブルマージに失敗するバグを修正しました。 
- to_charのモック実装において、着信列が連続しない行インデックスを持つ場合に- IndexErrorが発生するバグを修正しました。
- 着信列が連続しない行インデックスを持つ場合に - IndexErrorが発生する- CaseExpr式の処理でバグを修正しました。
- Column.likeの実装において、着信列が連続しない行インデックスを持つ場合に- IndexErrorが発生するバグを修正しました。
改善¶
- DataFrame.replace、- DataFrame.dropna、およびモック関数- iffの実装に、型強制のサポートを追加しました。
Snowpark Pandas API の更新¶
新機能¶
- freqと- limitパラメーターのない- DataFrame.pct_changeと- Series.pct_changeの部分的サポートを追加しました。
- Series.str.getのサポートを追加しました。
- Series.dt.dayofweek、- Series.dt.day_of_week、- Series.dt.dayofyear、および- Series.dt.day_of_yearのサポートを追加しました。
- Series.str.__getitem__ (Series.str[...])のサポートを追加しました。
- Series.str.lstripと- Series.str.rstripのサポートを追加しました。
- DataFrameGroupby.sizeと- SeriesGroupby.sizeのサポートを追加しました。
- axis=0のある集計- count、- sum、- min、- max、- mean、- std、および- varに- DataFrame.expandingと- Series.expandingのサポートを追加しました。
- axis=0のある集計カウントに- DataFrame.rollingと- Series.rollingのサポートを追加しました。
- Series.str.matchのサポートを追加しました。
- 集計サイズに - DataFrame.resampleと- Series.resampleのサポートを追加しました。
バグ修正¶
- GroupBy.aggregate列の出力順序が正しくないバグを修正しました。
- 異なる - dtypesの列が重複しているフレームで- DataFrame.describeを呼び出すと、エラーや不正な結果が発生するバグを修正しました。
- DataFrame.rollingと- Series.rollingのバグを修正して、- window=0が、- ValueErrorの代わりに- NotImplementedErrorをスローするようにしました。
改善¶
- axis=0のある- DataFrame.aggregateと- Series.aggregateに名前付き集計のサポートを追加しました。
- pd.read_csvは、ネイティブpandas CSV パーサーを使用して読み込み、parquetを使用してSnowflakeにデータをアップロードします。これにより、- read_csvでサポートされている日付パースや数値変換など、ほとんどのパラメーターを有効にすることができます。Parquet経由のアップロードは、 CSV 経由のアップロードのおよそ2倍の速さです。
- pd.IndexをSnowpark pandasで直接サポートするための初期作業。- pd.IndexをSnowpark pandasのファーストクラスコンポーネントとしてサポートするため、現在積極的に開発中です。
- 遅延インデックスのコンストラクターを追加し、 - len、- shape、- size、- empty、- to_pandas()、および- namesのサポートを追加しました。- df.indexの場合、Snowpark pandasは遅延インデックスオブジェクトを作成します。
- df.columnsの場合、Snowpark pandasでは、データがすでにローカルに保存されているため、- Indexの非遅延バージョンをサポートします。
バージョン1.18.0(2024-05-28)¶
Snowparkライブラリのバージョン1.18.0では、いくつかの新機能が導入されています。
新機能¶
- セッションの間、仮テーブルに - DataFrameおよび- Seriesオブジェクトを保存するために、- DataFrame.cache_resultおよび- Series.cache_resultメソッドをユーザー向けに追加して、後続の操作の遅延時間を改善しました。
改善¶
- indexパラメーターなしと- marginsパラメーターありの- DataFrame.pivot_tableに対するサポートを追加しました。
- DataFrame.shift、- Series.shift、- DataFrameGroupBy.shift、- SeriesGroupBy.shiftの署名をpandas 2.2.1に一致するよう更新しました。Snowpark pandasでは、新しく追加されたサフィックス引数やピリオドのシーケンス値はまだサポートされていません。
- Series.str.splitのサポートを再追加しました。
バグ修正¶
- 文字列メソッド( - Series.str.*)列が混在していた問題を修正しました。
ローカルテストの更新¶
新機能¶
- ファイル形式 CSV および JSON に、以下の - DataFrameReader読み取りオプションのサポートを追加しました。- PURGE 
- PATTERN 
- False値のある INFER_SCHEMA
- UTF8値のある ENCODING
 
- DataFrame.analytics.moving_aggおよび- DataFrame.analytics.cumulative_agg_aggのサポートを追加しました。
- UDF およびストアドプロシージャ登録時の - if_not_existsパラメーターのサポートを追加しました。
バグ修正¶
- 時間形式の処理において、秒の端数部分が正しく処理されないバグを修正しました。 
- *での関数呼び出しに失敗するバグを修正しました。
- mapおよび- struct型のオブジェクトを作成できないバグを修正しました。
- 関数 - date_addが一部の数値型を処理できないバグを修正しました。
- TimestampTypeのキャストが不正なデータになるバグを修正しました。
- DecimalTypeデータが不正な精度を持つ場合があるバグを修正しました。
- 欠落したテーブルやビューを参照すると - IndexErrorが発生するバグを修正しました。
- モック関数 - to_timestamp_ntzが- Noneデータを処理できないバグを修正しました。
- モックされた UDFs が - Noneの出力データを不適切に扱うバグを修正しました。
- DataFrame.with_column_renamedが結合操作後に親- DataFramesからの属性を無視するバグを修正しました。
- pandas - DataFrameに変換する際に、大きな値の整数精度が失われるバグを修正しました。
- pandas - DataFrameから- DataFrameを作成する際、- datetimeオブジェクトのスキーマが間違っていたバグを修正しました。
- Column.equal_nanの実装において、nullデータが正しく処理されていなかったバグを修正しました。
- DataFrame.dropが結合操作後に親- DataFramesからの属性を無視するバグを修正しました。
- モック関数 - date_partで列の型が正しく設定されないバグを修正しました。
- DataFrameWriter.save_as_tableでnull非許容型の列にnullデータを挿入した場合に例外が発生しない不具合を修正しました。
- DataFrameWriter.save_as_tableの実装における以下のバグを修正しました。- 受信データが既存のテーブルと異なるスキーマを持つ場合、追加または切り捨てが失敗する。 
- 受信データにnull許容型の列が指定されていない場合、切り捨てが失敗する。 
 
改善¶
- 使用されていない - pyarrowの依存関係チェックを削除しました。
- Column.castのターゲット型範囲が改善され、ブール値型とすべての整数型へのキャストのサポートが追加されました。
- UDFs およびストアドプロシージャを呼び出す際のエラーエクスペリエンスを調整しました。 
- UDFs およびストアドプロシージャ登録の - is_permanentおよび- anonymousオプションに適切なエラーメッセージを追加し、これらの機能がまだサポートされていないことを明確にしました。
- サポートされていないオプションや値を使用したファイル読み取り操作で、警告や不明確なエラー情報の代わりに - NotImplementedErrorが発生するようになりました。
バージョン1.17.0(2024-05-21)¶
Snowparkライブラリのバージョン1.17.0では、いくつかの新機能が導入されています。
新機能¶
- 以下の関数を使用して、テーブルとビューにコメントを追加できるようになりました。 - DataFrameWriter.save_as_table
- DataFrame.create_or_replace_view
- DataFrame.create_or_replace_temp_view
- DataFrame.create_or_replace_dynamic_table
 
改善¶
- スキーマを指定せずに CSV ファイルを読み込む際に、 - {"infer_schema": True}を設定するようユーザーに促すエラーメッセージを改善しました。
ローカルテストの更新¶
新機能¶
- モック関数 - to_timestamp_ltz、- to_timestamp_ntz、- to_timestamp_tz、- to_timestampで- NumericTypeおよび- VariantTypeのデータ変換のサポートを追加しました。
- モック関数 - to_charで- DecimalType、- BinaryType、- ArrayType、- MapType、- TimestampType、- DateType、- TimeTypeのデータ変換のサポートを追加しました。
- 以下の APIs のサポートを追加しました。 - snowflake.snowpark.functions.to_varchar
- snowflake.snowpark.DataFrame.pivot
- snowflake.snowpark.Session.cancel_all
 
- 新しい例外クラス - snowflake.snowpark.mock.exceptions.SnowparkLocalTestingExceptionを導入しました。
- FloatTypeへのキャストのサポートを追加しました。
バグ修正¶
- ストアドプロシージャと UDFs が、クリーンアップステップ中に - sys.pathの既存のインポートを削除すべきではないのに削除してしまうバグを修正しました。
- datetime形式を処理する際、秒の端数部分が正しく処理されないバグを修正しました。
- Windowsプラットフォーム上のファイル操作で、ディレクトリ名に含まれるファイル区切り文字を適切に処理できないバグを修正しました。 
- Windowsプラットフォームで、pandasデータフレームを読み込む際に、整数データを持つ - IntervalType列を処理できないバグを修正しました。
- 同じエイリアスを持つ複数の列を選択できないバグを修正しました。 
- 識別子が引用符で囲まれている場合に、 - Session.get_current_[schema |database| role |user| account|warehouse]が大文字の識別子を返すバグを修正しました。
- 関数 - substrおよび- substringがゼロベースの- start_exprを処理できないバグを修正しました。
改善¶
- エラー時に - SnowparkLocalTestingExceptionを発生させることで、非ローカル実行時に発生する- SnowparkSQLExceptionと同等のエラーエクスペリエンスを標準化しました。
- Session.write_pandasメソッドのエラーエクスペリエンスを改善し、- NotImplementErrorが呼び出されたときに発生するようにしました。
- 非ローカル実行でクローズされたセッションを再利用する際のエラーエクスペリエンスを調整しました。 
バージョン1.16.0(2024-05-08)¶
Snowparkライブラリのバージョン1.16.0では、いくつかの新機能が導入されています。
新機能¶
- Snowflakeオブジェクトのデータ系統を探索するための - snowflake.snowpark.Session.lineage.traceを追加しました。
- Pythonモジュールとして指定されたパッケージにストアドプロシージャを登録するサポートを追加しました。 
- 構造化型スキーマ解析のサポートを追加しました。 
バグ修正¶
- スキーマを推論する際、すでに一重引用符で囲まれているステージファイル一重引用符が追加されるバグを修正しました。 
ローカルテストの更新¶
新機能¶
- モック関数 - to_dateで- StringType、- TimestampType、- VariantTypeのデータ変換のサポートを追加しました。
- 以下の APIs のサポートを追加しました。 - snowflake.snowpark.functions:- get
- concat
- concat_ws
 
 
バグ修正¶
- NaTおよび- NaNの値が認識されない原因となっていたバグを修正しました。
- スキーマを推論する際、すでに一重引用符で囲まれているステージファイル一重引用符が追加されるバグを修正しました。 
- DataFrameReader.csvで区切り文字を含む引用符付きの値を処理できないバグを修正しました。
- 算術計算に - Noneの値がある場合、出力が- math.nanではなく- Noneのままになるべきなのにそうならないバグを修正しました。
- 関数 - sumおよび- covar_popで、データに- math.nan値がある場合、出力も- math.nanになるべきなのにそうならないバグを修正しました。
- ステージ操作でディレクトリを処理できないバグを修正しました。 
- DataFrame.to_pandasが精度38のSnowflake数値型を- int64として受け取るべきなのにそうならないバグを修正しました。
バージョン1.15.0(2024-04-24)¶
Snowparkライブラリのバージョン1.15.0では、いくつかの新機能が導入されています。
新機能¶
- DataFrameWriteに- truncate保存モードが追加され、既存のテーブルをドロップする代わりに、基になるテーブルを切り捨てて上書きするようになりました。
- 収集操作中のクエリプランの高さと重複ノード数を計算するためのテレメトリーを追加しました。 
- DataFrameからステージにおける1つまたは複数のファイルにデータをアンロードするために以下の関数を追加しました。- DataFrame.write.json
- DataFrame.write.csv
- DataFrame.write.parquet
 
- DataFrameおよび- DataFrameWriterのアクション関数に、オープンテレメトリー APIs を使用した分散トレースを追加しました。- snowflake.snowpark.DataFrame:- collect
- collect_nowait
- to_pandas
- count
- show
 
- snowflake.snowpark.DataFrameWriter:- save_as_table
 
 
- snow://URLs、- snowflake.snowpark.Session.file.get、および- snowflake.snowpark.Session.file.get_streamのサポートが追加されました。
- ストアドプロシージャと UDFs を - commentで登録するサポートを追加しました。
- UDAF クライアントサポートの公開プレビューの準備が整いました。Snowflakeからの UDAF 公開プレビューの発表にご期待ください。 
- 動的ピボットのサポートを追加しました。この機能は現在プライベートプレビュー中です。 
改善¶
- 重複するサブクエリを共通テーブル式(CTEs)に変換することで、コンパイルと実行の両方で生成クエリのパフォーマンスが向上しました。これはまだ実験的な機能で、デフォルトでは有効になっていません。 - session.cte_optimization_enabledを- Trueに設定すると有効になります。
バグ修正¶
- ストアドプロシージャおよびユーザ定義関数を登録するクエリ実行に - statement_paramsが渡されないバグを修正しました。
- 引用されたステージの場所で - snowflake.snowpark.Session.file.get_streamが失敗するバグを修正しました。
- 基になるモジュールが見つからない場合に、 - utils.pyの内部型ヒントが- AttributeErrorを発生させることがあるバグを修正しました。
ローカルテストの更新¶
新機能¶
- UDFs およびストアドプロシージャの登録のサポートを追加しました。 
- 以下の APIs のサポートを追加しました。 - snowflake.snowpark.Session:- file.put
- file.put_stream
- file.get
- file.get_stream
- read.json
- add_import
- remove_import
- get_imports
- clear_imports
- add_packages
- add_requirements
- clear_packages
- remove_package
- udf.register
- udf.register_from_file
- sproc.register
- sproc.register_from_file
 
- snowflake.snowpark.functions- current_database
- current_session
- date_trunc
- object_construct
- object_construct_keep_null
- pow
- sqrt
- udf
- sproc
 
 
- モック関数 - to_timeで- StringType、- TimestampType、- VariantTypeのデータ変換のサポートを追加しました。
バグ修正¶
- 定数関数の列がnull充填されるバグを修正しました。 
- to_object、- to_array、- to_binaryのnull入力をより適切に処理できるように修正しました。
- タイムスタンプデータの比較で、2262年以降を処理できないバグを修正しました。 
- Session.builder.getOrCreateが作成されたモックセッションを返すべきなのにそうならないバグを修正しました。
バージョン1.14.0(2024-03-20)¶
Snowparkライブラリのバージョン1.14.0では、いくつかの新機能が導入されています。
新機能¶
- processメソッドでベクトル化された UDTFs の作成のサポートを追加しました。
- 以下のデータフレーム関数のサポートを追加しました。 - to_timestamp_ltz
- to_timestamp_ntz
- to_timestamp_tz
- locate
 
- ASOFJOIN 型のサポートが追加されました。 
- 以下のローカルテスト APIs のサポートを追加しました。 - snowflake.snowpark.functions: - to_double
- to_timestamp
- to_timestamp_ltz
- to_timestamp_ntz
- to_timestamp_tz
- greatest
- least
- convert_timezone
- dateadd
- date_part
 
- snowflake.snowpark.Session: - get_current_account
- get_current_warehouse
- get_current_role
- use_schema
- use_warehouse
- use_database
- use_role
 
 
改善¶
- ローカルテストにテレメトリーを追加しました。 
- DataFrameReaderのエラーメッセージを改善し、存在しないパスを読み込んだ場合や、パス下にファイルがない場合に- FileNotFoundエラーを発生するようにしました。
バグ修正¶
- SnowflakePlanBuilderで、名前が- $で始まり、その後に数字が続く列を- save_as_tableが正しくフィルタリングしないバグを修正しました。
- インポートおよびパッケージの解決時にステートメントパラメーターが効果を発揮しない場合があるバグを修正しました。 
- 以下のローカルテストでのバグを修正しました。 - LEFT ANTI および LEFT SEMI 結合がnull値を持つ行をドロップする。 
- オプションのパラメーター - field_optionally_enclosed_byが指定された場合、- DataFrameReader.csvで正しくデータが解析されない。
- Column.regexpは、- patternが- Columnの場合、最初のエントリのみを考慮する。
- Table.updateで、行のnull値を更新する際に- KeyErrorが発生する。
- VARIANT 列で - DataFrame.collect時にエラーが発生する。
- count_distinctがカウント時に正しく動作しない。
- 整数列のnull値で - TypeErrorが発生する。
 
バージョン1.13.0(2024-02-26)¶
Snowparkライブラリのバージョン1.13.0では、いくつかの新機能が導入されています。
新機能¶
- 関数 - last_dayのオプション引数- date_partのサポートを追加しました。
- SessionBuilder.app_nameは、セッション作成後に- query_tagを設定します。
- 以下のローカルテスト関数のサポートを追加しました。 - current_timestamp
- current_date
- current_time
- strip_null_value
- upper
- lower
- length
- initcap
 
改善¶
- インタプリターのシャットダウン時に、すべてのアクティブなセッションをクローズするクリーンアップロジックを追加しました。 
バグ修正¶
- 誤った分離レベルが原因で、反復子が終了する前に別のクエリが実行されるときに反復子が間違った結果を返す、 - DataFrame.to_local_iteratorのバグを修正しました。
- ローカルテストを有効にしてプランを実行すると、エラーメッセージのテーブル名が切り捨てられるバグを修正しました。 
- 範囲が大きい場合に - Session.rangeが空の結果を返すバグを修正しました。
バージョン1.12.1(2024-02-08)¶
Snowparkライブラリのバージョン1.12.1では、いくつかの新機能が導入されています。
改善¶
- 最適なメモリ割り当てのために、 - to_pandas変換時にデフォルトで- split_blocks=Trueを使用します。このパラメーターは- pyarrow.Table.to_pandasに渡され、- PyArrowがメモリ割り当てを分割して、単一の連続したブロックではなく、小さく管理しやすいブロックに割り当てられるようにします。この結果、大きなデータセットを扱う際のメモリ管理が改善されます。
バグ修正¶
- Null値を持つ - IntegerType列を持つDataframe上で評価するとエラーが発生する- DataFrame.to_pandasのバグを修正しました。
バージョン1.12.0(2024-01-29)¶
Snowparkライブラリのバージョン1.12.0では、いくつかの新機能が導入されています。
動作変更(API 互換)¶
- to_pandas操作中にデータ型を解析するときは、大きな整数値の精度問題を修正するために GS 精度値に依存します。これは、以前に- int8として返されていた列が- int64として返されるユーザーに、影響を与える可能性があります。ユーザーは、戻り値の列に明示的に精度値を指定することで、この問題を解決することができます。
- Session.callを実行すると、- collect()操作が実行される場合を除いて、ストアドプロシージャがトリガーされなかったテーブルストアドプロシージャの場合に、- Session.callの動作を揃えました。
- StoredProcedureRegistrationは、クライアントのローカルバージョンのライブラリにおける依存パッケージとして- snowflake-snowpark-pythonを自動的に追加するようになりました。サーバーがそのバージョンをサポートできない場合は、エラーがスローされます。
新機能¶
- StoredProcedure.__call__で- statement_paramsを公開しました。
- Session.add_importに2つのオプション引数を追加しました。- chunk_size: アップロードされたファイルの各チャンクをハッシュするバイト数。
- whole_file_hash: デフォルトでは、アップロードされたインポートの最初のチャンクのみが、時間を節約するためにハッシュ化されます。Trueに設定すると、アップロードされた各ファイルが完全にハッシュ化されます。
 
- Snowpark Pythonから UDAF を作成する際のパラメーター、 - external_access_integrationsと- secretsを追加し、外部アクセスと統合できるようにしました。
- 新しいメソッド - Session.append_query_tagを追加しました。これにより、コンマ区切りの値としてタグを追加すると、現在のクエリタグにさらにタグを追加することができるようになります。
- 新しいメソッド - Session.update_query_tagを追加しました。これにより、 JSON エンコードされたディクショナリクエリタグを更新できるようになります。
- SessionBuilder.getOrCreateは、トークンの有効期限が検出されたときに返すシングルトンの置換を試行するようになりました。
- snowflake.snowpark.functionsに以下の関数を追加しました。- array_except
- create_map
- sign/- signum
 
- DataFrame.analyticsに以下の関数を追加しました。- 複数のウィンドウサイズでの合計や平均のような移動集計を可能にするために、 - moving_agg関数を- DataFrame.analyticsに追加しました。
- 複数のウィンドウサイズでの合計や平均のような移動集計を可能にするために、 - cumulative_agg関数を- DataFrame.analyticsに追加しました。
 
バグ修正¶
- ブール値が誤って整数値を上書きする - DataFrame.na.fillのバグを修正しました。
- Session.create_dataframeで、pandas DataFrames を使用して作成されたSnowpark DataFrames がタイムスタンプ列の型を正しく推測していなかったバグを修正しました。動作は以下のとおりです。- タイムゾーンのない以前のタイムスタンプ列は、ナノ秒エポックに変換され - LongType()と推論されていましたが、現在はタイムスタンプ値として正しく保持され、- TimestampType(TimestampTimeZone.NTZ)と推論されるようになりました。
- タイムゾーンのある以前のタイムスタンプ列は、 - TimestampType(TimestampTimeZone.NTZ)として推測され、タイムゾーン情報が失われていましたが、現在は- TimestampType(TimestampTimeZone.LTZ)として正しく推測され、タイムゾーン情報は正しく保持されるようになりました。
- セッションパラメーター - PYTHON_SNOWPARK_USE_LOGICAL_TYPE_FOR_CREATE_DATAFRAMEを設定して、以前の動作に戻します。このパラメーターは将来削除される予定であるため、Snowflakeは、正しい動作になるようにコードを更新することを推奨しています。
 
- スケールが0でない場合に - DataFrame.to_pandasが10進数型を取得し、- pandasにオブジェクトのd型を作成するバグを修正しました。代わりに、値をfloat64型にキャストします。
- 以下のいずれかが発生した場合に生成された SQL が誤ってフラット化されるバグを修正しました。 - DataFrame.filter()は- DataFrame.sort().limit()の後に呼び出されます。
- DataFrame.sort()または- filter()は、ウィンドウ関数またはシーケンス依存データ生成列がすでにある DataFrame で呼び出されます。たとえば、- df.select("a", seq1().alias("b")).select("a", "b").sort("a")は、ソート句をフラット化しなくなります。
- ウィンドウまたはシーケンス依存のデータ生成列が - DataFrame.limit()の後に使用されます。たとえば、- df.limit(10).select(row_number().over())はリミットをフラット化せず、生成された SQL で選択するようになります。
 
- エイリアシングされた列のある別の DataFrame から DataFrame がコピーされている場合に DataFrame 列をエイリアシングすると、エラーが発生するバグを修正しました。たとえば、 - df = df.select(col("a").alias("b")) df = copy(df) df.select(col("b").alias("c")) # Threw an error. Now it's fixed. 
- Session.create_dataframeで、スキーマにある非null許容フィールドがブール値型で尊重されないバグを修正しました。この修正は、ユーザーが仮テーブルを作成する権限を持っている場合にのみ有効であることに注意してください。
- limit()を使用した場合に、- session.sqlにある非選択ステートメントが SQL クエリがドロップされる SQL シンプリファイアーでのバグを修正しました。
- セッションパラメーター - ERROR_ON_NONDETERMINISTIC_UPDATEがtrueの場合に例外が発生するバグを修正しました。