Snowparkl API への変更

このトピックでは、Snowpark API に加えられた変更を要約します。

このトピックの内容:

0.7.0以降のバージョン

0.7.0以降のバージョンのライブラリで行われた変更については、Snowflakeコミュニティサイトの クライアントリリース履歴 をご参照ください。

バージョン0.7.0

Snowparkライブラリのバージョン0.7.0では、いくつかの API の変更、新機能、改善、およびバグの修正が導入されています。

新しい APIs

  • 新しい Session.close() メソッドが導入されました。このメソッドを呼び出してSnowparkセッションを閉じます。これにより、実行中のすべてのクエリがキャンセルされ、以後このセッションを使用してクエリを実行できなくなります。

  • 新しい 更新可能 なクラスが導入されました。 UpdatableDataFrame クラスを拡張し、追加のテーブル関連機能(例: 値を更新および削除する機能)を提供します。

    Session.table() メソッドは、 DataFrame オブジェクトではなく Updatable オブジェクトを返すようになりました。

  • UDFRegistration クラスの registerTemporary メソッドに新しい署名が導入されました。これらの署名には、 UDF の名前のパラメーターがありません。つまり、これらを使用して匿名の仮 UDF を登録できます。

API の変更

  • 新しい APIs で説明したように、 Session.table() メソッドは、 DataFrame を拡張する Updatable オブジェクトを返すようになりました。

  • Geography クラスで、 GeoJSON 以外の形式のサポートを削除しました。現在、 Geography は GeoJSON データ形式のみをサポートしています。

改善

  • DataFrame.cacheResult() メソッドを改善して、「オブジェクトはすでに存在します」エラーの可能性を減らしました。

  • いくつかのエラーメッセージを改善しました。

  • ログイン後にセッション情報を出力する新しいログメッセージを追加しました。

バグの修正

  • DataFrame.show() メソッドがバイナリデータを正しく表示しない問題を修正しました。

  • バージョン番号を取得するときに発生したエラーを修正しました。

バージョン0.6.0

Snowparkライブラリのバージョン0.6.0では、いくつかの API の変更、新機能、改善、およびバグの修正が導入されています。

API の変更

このリリースにより、 RelationalGroupedDataFrame の次のメソッドに引数が必要となりました。

  • avg

  • max

  • median

  • min

  • sum

以前のリリースでは、引数なしでこれらのメソッドを呼び出した場合、これらのメソッドは DataFrame にあるすべての数値列に適用されていました。たとえば、列 (a int, b string, c float) がある DataFrame df の場合、 df.groupBy("a").max() を呼び出すことは df.groupBy("a").max(col("a"), col("c")) を呼び出すことと同じです。

このリリースでは、引数なしでこれらのメソッドを呼び出すと、 SnowparkClientException になります。

バージョン0.5.0

Snowparkライブラリのバージョン0.5.0では、いくつかの新機能、改善、およびバグの修正が導入されています。

新機能

  • DataFrame.show() メソッドに maxWidth パラメーターを追加しました。このパラメーターを使用して、各列の出力に出力される文字数を調整できます。

  • Session.cancelAll() メソッドを追加しました。このメソッドを使用して、このセッションで実行中のすべてのアクションをキャンセルできます。

  • DataFrame.toLocalIterator() メソッドを追加しました。このメソッドは、データを行ごとに取得するために使用できる反復子を返します。すべてのデータを一度にメモリにロードしたくない場合は、 DataFrame.collect() ではなくこれを使用します。

  • median メソッドを RelationalGroupedDataFrame クラスに追加しました。

改善

  • 識別子が無効な場合に返されるエラーメッセージを改善しました。

  • データベースまたはスキーマ名が指定されていない場合に、エラーを報告するようにエラーチェックを拡張しました。

  • テーブルに多数の値を挿入するときのパフォーマンスが向上しました。

  • Snowflakeオブジェクト識別子(テーブル名とビュー名)を一貫して処理するようにライブラリを更新しました。現在、テーブル名またはビュー名を指定するパラメーターすべては、以下の使用をサポートしています。

    • 短い名前(例: table_name および view_name

    • 完全修飾名(例: database.schema.table_name

    • マルチパート識別子(例: Seq("database", "schema", "view_name")

  • サポートされているバージョンのScalaが使用されていることを確認するためのチェックを追加しました。Scalaバージョンに互換性がない場合、ライブラリはエラーを報告します。

バグの修正

  • Microsoft Windowsでの UDFs の登録に関する問題を修正しました。

  • DataFrame.sort()DataFrame.limit() で使用した場合の結果の順序に関する問題を修正しました。

  • ギャップのない一連の数値を生成するように Session.range() を修正しました。

バージョン0.4.1

このバージョンでは、Snowparkオブジェクトの仮スキーマまたは仮データベース(TEMP_SCHEMA および TEMP_DB 設定)を指定する必要がなくなりました。Snowparkライブラリは、必要なオブジェクトの仮バージョンを自動的に作成します。

さらに、このバージョンでは、次のセクションにリストされている API の変更が導入されています。

API の変更

  • DataFrame.cache() メソッドを DataFrame.cacheResult() メソッドに置き換えました。

    新しいメソッドは、キャッシュされた結果を含む新しい DataFrame を作成して返し、現在の DataFrame には影響しません。この変更の結果、 DataFrame オブジェクトは不変になりました。

新しい APIs

  • 次の新しいメソッドを RelationalGroupedDataFrame クラスに追加しました。

  • 次の新しいメソッドを DataFrame クラスに追加しました。

  • 次の新しい関数を 関数 オブジェクトに追加しました。

  • Session.file オブジェクトを追加しました。これは、ファイル操作を実行するための次の新しいメソッドを提供します。

  • Session.createDataFrame メソッドに次の変更を加えました。

    • ユーザー提供のスキーマのサポートが追加されました。

    • バリアントと地理データのマップと配列を指定するためのサポートが追加されました。

    • UDFs に地理/バリアントデータ型のサポートが追加されました。

  • registerPermanent メソッドを UDFRegistration クラスに追加しました。

バグの修正

  • DataFrame 列名に引用符が含まれている場合の問題を修正しました。

  • バックスラッシュ、一重引用符、および改行文字を含むデータをエスケープできない問題を修正しました。

  • UDF の作成が、「コードが大きすぎます」というエラーメッセージをともない失敗する問題を修正しました。

  • UDF クロージャがローカル文字列変数の値をキャプチャできなかった問題を修正しました。

  • 次の SQL 句の結果スキーマを追加しました

    • GRANT/REVOKE

    • DESCRIBE

    • CREATE

    • USE

  • Visual Studio CodeでMetals拡張機能と合わせてSnowparkを使用して UDF を作成する際の問題を修正しました。