Änderungen an der Snowpark-API

Dieses Thema fasst die Änderungen zusammen, die an der Snowpark-API vorgenommen wurden.

Unter diesem Thema:

Versionen nach 0.7.0

Die Änderungen, die in den Versionen der Bibliothek nach 0.7.0 vorgenommen wurden, finden Sie im Client-Release-Verlauf auf der Snowflake-Community-Website.

Version 0.7.0

Version 0.7.0 der Snowpark-Bibliothek führt einige API-Änderungen, neue Funktionen, Verbesserungen und Fehlerkorrekturen ein.

Neue APIs

  • Die neue Methode Session.close() wurde eingeführt. Rufen Sie diese Methode auf, um die Snowpark-Sitzung zu schließen. Dadurch werden alle aktiven Abfragen abgebrochen und die anschließende Verwendung dieser Sitzung zur Ausführung von Abfragen verhindert.

  • Die neue Klasse Updatable wurde eingeführt. Updatable erweitert die Klasse DataFrame und bietet zusätzliche tabellenbezogene Funktionen (z. B. die Möglichkeit, Werte zu aktualisieren und zu löschen).

    Die Methode Session.table() gibt jetzt statt eines DataFrame-Objekts ein Updatable-Objekt zurück.

  • Neue Signaturen für die registerTemporary-Methoden der Klasse UDFRegistration wurden eingeführt. Diese Signaturen haben keinen Parameter für den UDF-Namen, was bedeutet, dass sie zum Registrieren einer anonymen temporären UDF verwendet werden können.

API-Änderungen

  • Wie in Neue APIs erwähnt, gibt die Methode Session.table() nun ein Objekt Updatable zurück, das DataFrame erweitert.

  • In der Klasse Geography wurde die Unterstützung anderer Formate als GeoJSON entfernt. Ab sofort unterstützt Geography nur das Datenformat GeoJSON.

Verbesserungen

  • Die Methode DataFrame.cacheResult() wurde verbessert, um die Möglichkeit von Fehlern des Typs „Objekt bereits vorhanden“ zu reduzieren.

  • Einige Fehlermeldungen wurden verbessert.

  • Eine neue Protokollmeldung wurde hinzugefügt, die nach dem Anmelden Sitzungsinformationen ausgibt.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem die Methode DataFrame.show() binäre Daten nicht korrekt anzeigte.

  • Ein Fehler wurde behoben, der beim Abrufen der Versionsnummer auftrat.

Version 0.6.0

Version 0.6.0 der Snowpark-Bibliothek führt einige API-Änderungen, neue Funktionen, Verbesserungen und Fehlerkorrekturen ein.

API-Änderungen

Ab diesem Release benötigen die folgenden Methoden in RelationalGroupedDataFrame nun ein Argument:

  • avg

  • max

  • median

  • min

  • sum

Wenn Sie in früheren Releases diese Methoden ohne ein Argument aufriefen, wurden die Methoden auf alle numerischen Spalten im DataFrame angewendet. Beispielsweise war für ein DataFrame df mit den Spalten (a int, b string, c float) der Aufruf von df.groupBy("a").max() äquivalent zum Aufruf von df.groupBy("a").max(col("a"), col("c")).

Ab diesem Release führt der Aufruf dieser Methoden ohne ein Argument zu einer SnowparkClientException.

Version 0.5.0

Die Version 0.5.0 der Snowpark-Bibliothek enthält einige neue Funktionen, Verbesserungen und Fehlerkorrekturen.

Neue Funktionen

  • Die Methode DataFrame.show() wurde ein Parameter maxWidth hinzugefügt. Mit diesem Parameter können Sie die Anzahl der Zeichen einstellen, die in der Ausgabe für jede Spalte gedruckt werden.

  • Methode Session.cancelAll() wurde hinzugefügt, mit der Sie alle laufenden Aktionen in dieser Sitzung abbrechen können.

  • Methode DataFrame.toLocalIterator() wurde hinzugefügt, die einen Iterator zurückgibt, mit dem Sie Daten zeilenweise abrufen können. Sie können dies anstelle von DataFrame.collect() verwenden, wenn Sie nicht alle Daten auf einmal in den Speicher laden möchten.

  • Die Methode median wurde zur Klasse RelationalGroupedDataFrame hinzugefügt.

Verbesserungen

  • Die Fehlermeldung, die zurückgegeben wird, wenn ein Bezeichner ungültig ist, wurde verbessert.

  • Die Fehlerprüfung wurde verbessert, um einen Fehler zu melden, wenn kein Datenbank- oder Schemaname angegeben ist.

  • Es wurde eine Leistungsverbesserung beim Einfügen einer großen Anzahl von Werten in eine Tabelle hinzugefügt.

  • Die Bibliothek wurde aktualisiert, um Snowflake-Objektbezeichner (Namen von Tabellen und Ansichten) konsistent zu behandeln. Jetzt unterstützen alle Parameter, die Namen von Tabellen oder Ansichten angeben, die Verwendung von:

    • Kurze Namen (z. B. table_name und view_name)

    • Vollqualifizierte Namen (z. B. database.schema.table_name)

    • Mehrteilige Bezeichner (z. B. Seq("database", "schema", "view_name"))

  • Es wurde eine Prüfung hinzugefügt, um sicherzustellen, dass die unterstützte Version von Scala verwendet wird. Die Bibliothek meldet einen Fehler, wenn die Scala-Version nicht kompatibel ist.

Fehlerkorrekturen

  • Problem mit der Registrierung von UDFs unter Microsoft Windows wurde behoben.

  • Problem mit der Reihenfolge der Ergebnisse bei Verwendung von DataFrame.sort() mit DataFrame.limit() wurde behoben.

  • Problem mit Session.range() wurde behoben, um eine Nummernsequenz ohne Lücken zu generieren.

Version 0.4.1

Ab dieser Version sind für Snowpark-Objekte keine Angaben zum temporären Schema oder zur temporären Datenbank mehr erforderlich (die Einstellungen TEMP_SCHEMA und TEMP_DB). Die Snowpark-Bibliothek erstellt automatisch temporäre Versionen der benötigten Objekte.

Darüber hinaus werden mit dieser Version die in den nächsten Abschnitten aufgeführten API-Änderungen eingeführt.

API-Änderungen

  • Die Methode DataFrame.cache() wird durch die Methode DataFrame.cacheResult() ersetzt.

    Die neue Methode erstellt mit den zwischengespeicherten Ergebnissen einen neuen DataFrame und gibt diesen zurück, ohne dass dies Einfluss auf den aktuellen DataFrame hat. Als Ergebnis dieser Änderung ist das DataFrame-Objekt nun unveränderlich.

Neue APIs

Fehlerkorrekturen

  • Problem mit Anführungszeichen in DataFrame-Spaltennamen wurde behoben.

  • Problem behoben, bei dem Daten, die Backslashes, einfache Anführungszeichen und Zeilenumbruchzeichen enthalten, nicht entschlüsselt werden konnten.

  • Problem behoben, bei dem die UDF-Erstellung mit der Fehlermeldung „code too large“ (Code zu lang) fehlschlägt.

  • Problem behoben, bei dem die UDF-Closure den Wert einer lokalen Zeichenfolgenvariablen nicht erfassen konnte.

  • Für die folgenden SQL-Klauseln wurde ein Ergebnisschema hinzugefügt:

    • GRANT/REVOKE

    • DESCRIBE

    • CREATE

    • USE

  • Problem beim Erstellen einer UDF unter Verwendung von Snowpark in Visual Studio Code mit der Metals-Erweiterung behoben.