Snowpark Library for Scala and Java-Versionshinweise 2022¶
Dieser Artikel enthält die Versionshinweise für die Snowpark-Bibliothek für Scala und die Snowpark-Bibliothek für Java, einschließlich der folgenden, sofern zutreffend:
Verhaltensänderungen
Neue Features
Fehlerkorrekturen für Kunden
Snowflake verwendet semantische Versionierung für Snowpark Library for Scala and Java-Aktualisierungen.
Version 1.6.2 (26. Oktober 2022)¶
Kompatibles Snowflake-Release: 6.35.x
Verbesserungen¶
Es wurden interne Verbesserungen für in Java oder Scala geschriebene gespeicherte Prozeduren vorgenommen.
Version 1.6.1 (30. September 2022)¶
Kompatibles Snowflake-Release: 6.31.x
Diese Version weist ein bekanntes Problem auf, das die Erstellung von temporären Objekten beeinträchtigen kann. Verwenden Sie stattdessen 1.6.2.
Verbesserungen¶
Es wurden interne Verbesserungen für in Java oder Scala geschriebene gespeicherte Prozeduren vorgenommen.
Version 1.6.0 (12. August 2022)¶
Kompatibles Snowflake-Release: 6.27.x
Verbesserungen¶
Es wurden interne Verbesserungen an UDTFs vorgenommen.
Version 1.5.0 (1. Juli 2022)¶
Kompatibles Snowflake-Release: 6.22.x
Neue Features¶
Verbesserungen¶
SQL-Abfragen, die von der Snowpark-Client-Bibliothek generiert werden, wurden optimiert.
Die Fehlermeldung, die protokolliert wird, wenn die Snowpark-Bibliothek einen Spaltennamen
in einem DataFrame auflösen kann, wurde verbessert (z. B. wenn Sie versuchen, auf eine Spalte zuzugreifen, die nicht existiert).
Version 1.4.1 (26. Mai 2022)¶
Kompatibles Snowflake-Release: 6.17.x
Änderungen¶
Die Versionen von
jackson-core
undjackson-annotations
, von der die Snowpark-Bibliothek abhängt, wurde auf 2.13.2 aktualisiert.Die Version von
jackson-databind
, von der die Snowpark-Bibliothek abhängt, wurde auf 2.13.2.2 aktualisiert.Die Klassen
jackson-core
,jackson-databind
undjackson-annotations
wurden aus der Snowpark-JAR-Datei entfernt.Wenn Sie die
.tar.gz
/.zip
-Datei heruntergeladen haben, werden die JAR-Dateien für die Jackson-Klassen jetzt separat im Unterverzeichnislib/
bereitgestellt (jackson-core-2.13.2.jar
,jackson-databind-2.13.2.2.jar
undjackson-annotations-2.13.2.jar
).Wenn Sie die Snowpark-Bibliothek in Ihrer
pom.xml
-Datei als Abhängigkeit angeben und Sie in Ihrer „pom.xml“-Datei von einer anderen Version der Jackson-Bibliotheken abhängig sein möchten, können Sie die Abhängigkeit von den Jackson-Bibliotheken aus der Snowpark-Bibliotheksabhängigkeit ausschließen.
Version 1.4.0 (28. April 2022)¶
Kompatibles Snowflake-Release: 6.14.x
Neue Features¶
Die Snowpark-Java-API ist auf AWS und Azure nun allgemein verfügbar.
Die API ist auf GCS weiterhin als Vorschau-Feature verfügbar.
Die Snowpark Scala-API ist jetzt auch auf Azure allgemein verfügbar.
Vor diesem Release war die API nur auf AWS allgemein verfügbar. Die API ist auf GCS weiterhin als Vorschau-Feature verfügbar.
Java-API zum Erstellen von UDTFs hinzugefügt. Beachten Sie, dass sich dieses Feature in der Vorschau befindet.
Neue APIs in Scala und Java zum Hoch- und Herunterladen von Daten aus einem Stagingbereich hinzugefügt (
FileOperation.uploadStream and FileOperation.downloadStream
).Methode
DataFrameWriter.option
in Scala und Java hinzugefügt, um festzulegen, wie Werte in Spalten des DataFrame den Spalten der Tabelle zugeordnet werden sollen. Mit der Methode „option“ können Sie festlegen, dassDataFrameWriter
den Spaltennamen und nicht die Reihenfolge der Spalten verwenden soll.
Verbesserungen¶
Closure Cleaner in Java-Sitzungen deaktiviert. Der Closure Cleaner funktioniert nur in Scala-Programmen.
Array
- undMap
-Unterstützung der Java-Row-API verbessert.
Version 1.3.0 (18. März 2022)¶
Kompatibles Snowflake-Release: 6.8.x
Neue Features¶
Unterstützung für das Schreiben von gespeicherten Prozeduren in Java hinzugefügt.
Unterstützung von asynchronem Zusammenführen von Zeilen in einer Tabelle in Scala hinzugefügt.
Version 1.2.0 (2. März 2022)¶
Kompatibles Snowflake-Release: 6.5.x
Neue Features¶
Java-API für Snowpark hinzugefügt.
Vorschauunterstützung für Erstellen von UDTFs zu Scala-API hinzugefügt.
Separate Version der Bibliothek hinzugefügt, die die FIPS-Sicherheitsanforderungen (Federal Information Processing Standard) erfüllt. Sie können diese Bibliothek herunterladen von:
Um von einer sbt-Build-Datei oder einem Maven-Projekt auf die FIPS-konforme Bibliothek zu verweisen, verwenden Sie
snowpark-fips
alsartifactId
.
Version 1.1.0 (4. Februar 2022)¶
Kompatibles Snowflake-Release: 6.2.x
Unterstützung von Schreiben von gespeicherten Prozeduren in Scala hinzugefügt.
Die API-Referenz für dieses Release finden Sie in der Snowflake-Dokumentation und in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Version 1.0.0 (26. Januar 2022)¶
Kompatibles Snowflake-Release: 6.1.x
Allgemeine Verfügbarkeit auf AWS. (Snowpark ist auf Azure und GCP noch ein Vorschau-Feature.)
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Version 0.12.0 (4. Januar 2022)¶
Kompatibles Snowflake-Release: 5.45.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Neue Features¶
Verbesserungen¶
Im generierten Code für UDFs wurde ein statischer Codeblock durch eine Objektinstanzfunktion ersetzt.
Fehlermeldungen wurden neu organisiert.
Funktion
saveAsTable
wurde so geändert, dass im Anfügemodus keine neue Tabelle erstellt wird.Funktion
callUDF
wurde verbessert und unterstützt nun jeden Typ von Argument.Die Bibliothek wurde so geändert, dass das Abfrage-Tag auf Anweisungsebene und nicht mehr auf Sitzungsebene gesetzt wird.
Version 0.11.0 (16. November 2021)¶
Kompatibles Snowflake-Release: 5.45.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Neue Features¶
Die Methode generator wurde zur Klasse
Session
hinzugefügt und die Funktionen seq1, seq2, seq4, seq8 und uniform zum „functions“-Objekt.Die Methode getSessionInfo wurde zur Klasse „Session“ hinzugefügt.
APIs zum asynchronen Ausführen von Aktionen auf DataFrames hinzugefügt.
Verbesserungen¶
Snowflake-JDBC-Treiber auf 3.13.9 aktualisiert. Fehlermeldung verbessert, die angezeigt wird, wenn keine aktuelle Datenbank zur Verwendung ausgewählt ist.
Version 0.10.1 (27. Oktober 2021)¶
Kompatibles Snowflake-Release: 5.38.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Fehlerkorrekturen¶
Problem beim Hochladen von Dateien in einen GCP-Stagingbereich behoben, bei dem das falsche Präfix verwendet wurde.
Problem behoben, bei dem eine 403 HTTP -Antwort zurückgegeben wurde, wenn auf eine vorsignierte URL für GCP zugegriffen wurde.
Version 0.10.0 (18. Oktober 2021)¶
Kompatibles Snowflake-Release: 5.37.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Neue Features¶
Die neue Methode dropDuplicates wurde der Klasse DataFrame hinzugefügt.
Unterstützung von „in“-Ausdrücken zur Klasse „Column“ (mit der Methode in) und zum „functions“-Objekt (mit der Funktion „in“) hinzugefügt.
Iterator erweitert, der von DataFrame.toLocalIterator zurückgegeben wird. Dieser unterstützt nun die Schnittstelle
Closeable
, mit der Sie die „Close“-Methode des Iterators aufrufen können.Unterstützung von neuer Konfigurationseigenschaft
snowpark_request_timeout_in_seconds
hinzugefügt. Sie können diese in der Konfigurationszuordnung/-datei einstellen, um das Timeout anzupassen, das die Bibliothek beim Hochladen von Abhängigkeiten in einen Stagingbereich verwendet. Standardmäßig hat das Timeout den Wert 86.400 (1 Tag).
Verbesserungen¶
Logik zur Methode DataFrame.withColumns hinzugefügt, um zu überprüfen, dass keine doppelten Eingabespaltennamen angegeben werden.
Die
clone
-Methoden in den KlassenCopyable
undUpdatable
wurden aktualisiert und geben nun die korrekten DataFrame-Typen zurück.Unterstützung für die Angabe der Anwendungs-ID hinzugefügt.
Dazu wird die Anwendungs-JDBC-Eigenschaft in der Konfigurationszuordnung/-datei eingestellt.
Verhaltensänderungen¶
APIs, die nur für Java bestimmt sind, wurden aus Scala-API entfernt.
Standard-Logger log4j durch SLF4J SimpleLogger ersetzt.
Fehlerkorrekturen¶
Bibliothek wurde so aktualisiert, dass nicht verwendete Anweisungen automatisch geschlossen werden, um den Verbrauch an Arbeitsspeicher zu reduzieren.
Spaltenreihenfolge im Ergebnis der Methode
DataFrame.withColumns
wurde korrigiert.
Version 0.9.0 (20. September 2021)¶
Kompatibles Snowflake-Release: 5.34.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Neue Features¶
Neue DataFrame-Unterklasse CopyableDataFrame hinzugefügt, mit der Sie Daten aus einer Stagingdatei in eine Tabelle kopieren können. Diese ist gleichbedeutend mit dem Befehl COPY INTO <table>.
Neuen Methode DataFrame.rename() zum Umbenennen von Spalten in einem DataFrame hinzugefügt.
Neue Funktion functions.iff() für die Angabe eines if-then-else-Ausdrucks hinzugefügt. Diese ist gleichbedeutend mit der Funktion IFF
Neue Konstruktoren zur Klasse DecimalType hinzugefügt.
Verhaltensänderungen¶
Methoden DataFrame.union() und DataFrame.unionByName() wurden geändert, um UNION anstatt UNION ALL zu verwenden.
Fehlerkorrekturen¶
Fehler
SQL compilation error: Missing column specification
wurde behoben, der auftreten konnte, wenn die Snowpark-Bibliothek eine temporäre Ansicht erstellte.
Version 0.8.0 (9. August 2021)¶
Kompatibles Snowflake-Release: 5.30.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
Verbesserungen¶
Einige interne Codes wurden überarbeitet, um einige Abhängigkeiten zu entfernen.
Fehlerkorrekturen¶
Problem mit BigDecimal-Literalen behoben, bei denen die Dezimalstellenzahl (scale) größer als die Gesamtstellenzahl (precision) sein konnte.
Problem behoben, das bei der Durchführung mehrerer Mengenoperationen (z. B. Vereinigung, Überschneidung usw.) auftreten konnte.
Version 0.7.0 (23. Juli 2021)¶
Kompatibles Snowflake-Release: 5.29.x
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
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. Sie 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 „Temporary“-Methoden der Klasse UDFRegistration 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 oben erwähnt, gibt die Methode
Session.table()
nun ein ObjektUpdatable
zurück, das dasDataFrame
-Objekt erweitert.In der Klasse
Geography
wurde die Unterstützung anderer Formate als GeoJSON entfernt. Ab sofort unterstütztGeography
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 (14. Juni 2021)¶
Kompatibles Snowflake-Release: 5.21.x
Vorschau-Release auf AWS
Die API-Referenz für dieses Release finden Sie in einer .zip
- oder .tar.gz
-Datei im Snowflake Client Repository.
API-Änderungen¶
Ab diesem Release benötigen die folgenden Methoden in RelationalGroupedDataFrame nun ein Argument:
avg
max
Median (median)
min
Summe (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¶
Neue Features¶
Der Methode DataFrame.show() wurde der Parameter „maxWitdh“ 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 diese anstelle von DataFrame.collect() verwenden, wenn Sie nicht alle Daten auf einmal in den Arbeitsspeicher 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.
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¶
Der Klasse RelationalGroupedDataFrame wurden die folgenden neuen Methoden hinzugefügt:
avg
max
Der Klasse DataFrame wurden die folgenden neuen Methoden hinzugefügt:
groupByGroupingSets
clone
createOrReplaceTempView
Dem Objekt „functions“ wurden die folgenden neuen Funktionen hinzugefügt:
toScalar
Es wurde ein Objekt „Session.file“ hinzugefügt, das die folgenden neuen Methoden zur Ausführung von Dateioperationen bereitstellt:
get
put
An der Methode Session.createDataFrame wurden folgende Änderungen vorgenommen:
Unterstützung von benutzerdefinierten Schemas hinzugefügt.
Unterstützung für Angabe von Array/Zuordnung mit Variant-/Geography-Daten hinzugefügt.
Unterstützung von Geography/Variant-Datentypen in UDFs hinzugefügt.
Die Methode registerPermanent wurde zur Klasse UDFRegistration hinzugefügt.
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.