Versionshinweise zur Snowpark-Bibliothek für Python 2023¶
Dieser Artikel enthält die Versionshinweise für Snowpark Library for Python, einschließlich der folgenden, sofern zutreffend:
Verhaltensänderungen
Neue Features
Fehlerkorrekturen für Kunden
Snowflake verwendet semantische Versionierung für Snowpark Library for Python-Aktualisierungen.
Siehe Snowpark-Entwicklerhandbuch für Python für die Dokumentation.
Version 1.11.1 (2023-12-07)¶
Version 1.11.1 der Snowpark-Bibliothek enthält einige neue Features.
Neue Features¶
Zu
SnowflakeSQLExceptionwurde das Attributconn_errorhinzugefügt, das die gesamte zugrunde liegende Ausnahme vonsnowflake-connector-pythonspeichert.Unterstützung von
RelationalGroupedDataframe.pivot()für den Zugriff aufpivotim MusterDataframe.group_by(...).pivot(...)hinzugefügt.Experimentelles Feature „Local Testing Mode“ (lokaler Testmodus) hinzugefügt, das Ihnen ermöglicht, Snowpark Python-DataFrames lokal zu erstellen und zu nutzen, ohne sich mit einem Snowflake-Konto verbinden zu müssen. Sie können das lokale Test-Framework verwenden, um Ihre DataFrame-Operationen lokal entweder auf Ihrem Entwicklungsrechner oder in einer CI-Pipeline (Pipeline für kontinuierliche Integration) testen, bevor Sie Codeänderungen in Ihrem Konto bereitstellen.
Unterstützung neuer
arrays_to_object-Funktionen insnowflake.snowpark.functionshinzugefügt.Unterstützung von Vektor-Datentyp hinzugefügt.
Aktualisierungen der Abhängigkeiten¶
Cloudpickle-Abhängigkeit für Verwendung mit
cloudpickle==2.2.1aktualisiert.snowflake-connector-pythonauf Version3.4.0aktualisiert.
Fehlerkorrekturen¶
Überprüfung der Spaltennamen von DataFrame-Spalten auf Anführungszeichen unterstützt jetzt Zeilenumbrüche.
Fehler behoben, bei dem ein von
session.read.with_metadatagenerierter DataFrame eine inkonsistente Tabelle erzeugte, wenndf.write.save_as_tableausgeführt wurde.
Version 1.10.0 (2023-11-03)¶
Version 1.10.0 der Snowpark-Bibliothek enthält einige neue Features.
Neue Features¶
Unterstützung für die Verwaltung der Groß-/Kleinschreibung in
DataFrame.to_local_iterator()hinzugefügt.Unterstützung für das Angeben der Namen der Eingabespalten der vektorisierten UDTF hinzugefügt, indem der optionale Parameter
input_namesinUDTFRegistration.register,UDTFRegistration.register_fileundfunctions.pandas_udtfverwendet wird. Standardmäßig entnimmtRelationalGroupedDataFrame.applyInPandasdie Spaltennamen dem aktuellen DataFrame-Schema.Attribute
sql_error_codeundraw_messagezuSnowflakeSQLExceptionhinzugefügt, wenn diese durch eine SQL-Ausnahme verursacht wird.
Fehlerkorrekturen¶
Problem in
DataFrame.to_pandas()behoben, durch das bei der Konvertierung von Snowpark-DataFrames in Pandas-DataFrames die Genauigkeit von Ganzzahlen mit mehr als 19 Ziffern verloren ging.Problem in
session.add_packagesbehoben, bei dem ein Anforderungsspezifikator, der einen Projektnamen mit einem Unterstrich und einer Version enthielt, nicht verarbeitet werden konnte.Problem in
DataFrame.limit()behoben, wennoffsetverwendet wird und das übergeordneteDataFrameverwendetlimit. Jetzt wirkt sichoffsetnicht mehr auflimitim übergeordneten DataFrame aus.Problem in
DataFrame.write.save_as_tablebehoben, bei dem DataFrames, die aus der Lese-API erstellt wurden, aufgrund eines ungültigen Spaltennamens$1keine Daten in Snowflake speichern konnte.
Verhaltensänderungen¶
Das Verhalten von
date_formatwurde geändert:Das Argument
formatist nicht mehr optional sondern erforderlich.Das zurückgegebene Ergebnis wurde von einem Datumsobjekt in eine datumsformatierte Zeichenfolge geändert.
Wenn eine Fensterfunktion oder eine sequenzabhängige Datengeneratorfunktion (
normal,zipf,uniform,seq1,seq2,seq4,seq8) verwendet wird, wird die Sortier- und Filteroperation bei der Generierung der Abfrage nicht mehr vereinfacht (Flattening).
Version 1.9.0 (2023-10-16)¶
Version 1.9.0 der Snowpark-Bibliothek enthält einige neue Features.
Neue Features¶
Unterstützung der Laufzeitumgebung von Python 3.11 wurde hinzugefügt.
Unterstützung von JSON-serialisierbaren
PythonObjJSONEncoder-Objekten fürARRAY- undOBJECT-Literale.
Aktualisierungen der Abhängigkeiten¶
Abhängigkeit von
typing-extensionswurde wieder hinzugefügt.
Fehlerkorrekturen¶
Fehler behoben, bei dem Importe von permanenten Stagingbereichs-Speicherorten für temporär gespeicherte Prozeduren, UDTFs, UDFs und UDAFs ignoriert wurden.
Rückkehr zur Verwendung der CTAS-Anweisung (CREATE TABLE AS SELECT) für
DataFrameWriter.save_as_table, die keine Einfügeberechtigung zum Schreiben in Tabellen benötigt.
Version 1.8.0 (2023-09-14)¶
Version 1.8.0 der Snowpark-Bibliothek enthält einige neue Features.
Neue Features¶
Unterstützung der Schlüsselwörter
VOLATILEundIMMUTABLEbei der Registrierung von UDFs wurde hinzugefügt.Unterstützung für die Angabe von Gruppierungsschlüsseln beim Speichern von Datenframes mit
DataFrame.save_as_tablehinzugefügt.Iterable-Objekte werden als Eingabe fürschemaakzeptiert, wenn Datenframes mitSession.create_dataframeerstellt werden.Eigenschaft
DataFrame.sessionwurde hinzugefügt, um einSession-Objekt zurückzugeben.Eigenschaft
Session.session_idwurde hinzugefügt, um einen Integer-Wert zurückzugeben, der für die Sitzungs-ID steht.Eigenschaft
Session.connectionwurde hinzugefügt, um einSnowflakeConnection-Objekt zurückzugeben.Unterstützung für das Erstellen einer Snowpark-Sitzung aus einer Konfigurationsdatei oder aus Umgebungsvariablen wurde hinzugefügt.
Aktualisierungen der Abhängigkeiten¶
snowflake-connector-pythonauf 3.2.0 aktualisiert.
Fehlerkorrekturen¶
Fehler behoben, bei dem ein automatischer Paket-Upload einen
ValueErrorauslöste, auch wenn insession.add_packageskompatible Paketversionen hinzugefügt wurden.Fehler behoben, bei dem bei Verwendung von
register_from_filedie gespeicherten Tabellenprozeduren nicht korrekt registriert wurden.Fehler behoben, bei dem die Verknüpfung von Datenframes mit dem Fehler
invalid_identifierfehlschlug.Es wurde ein Fehler behoben, bei dem
DataFrame.copyden SQL-Simplifier für die zurückgegebene Kopie deaktiviert hat.Fehler behoben, bei dem
session.sql().select()fehlschlug, wenn beliebige Parameter fürsession.sql()angegeben wurden.
Version 1.7.0 (2023-08-28)¶
Version 1.7.0 der Snowpark-Bibliothek enthält einige neue Features.
Verhaltensänderungen¶
Beim Erstellen von gespeicherten Prozeduren UDFs, UDTFs und UDAFs mit dem Parameter
is_permanent=Falsewerden temporäre Objekte erstellt, auch wennstage_namebereitgestellt wird. Der Standardwert vonis_permanentistFalse. Wenn dieser Wert bei permanenten Objekten nicht ausdrücklich aufTruegesetzt wird, werden die Benutzer eine Änderung des Verhaltens feststellen.types.StructFieldsetzt Spaltenbezeichner jetzt standardmäßig in Anführungszeichen.
Neue Features¶
Hinzufügen der Parameter
external_access_integrationsundsecrets, die beim Erstellen einer UDF, UDTF oder gespeicherten Prozedur aus Snowpark Python verwendet werden können, um die Integration mit externem Zugriff zu ermöglichen.Unterstützung neuer Funktionen in
snowflake.snowpark.functionshinzugefügt:array_flattenundflatten.Unterstützung von
apply_in_pandasinsnowflake.snowpark.relational_grouped_dataframehinzugefügt.Unterstützung für die Replikation Ihrer lokalen Python-Umgebung nach Snowflake über
Session.replicate_local_environmenthinzugefügt.
Fehlerkorrekturen¶
Fehler behoben, bei dem
session.create_dataframenullwertfähige Spalten nicht korrekt festlegen konnte, wenn die NULL-Zulässigkeit durch die Reihenfolge oder die Angabe von Daten beeinflusst wurde.Fehler behoben, bei dem
DataFrame.selectbei Verwendung von Tabellenfunktionen Spalten nicht identifizieren und mit Aliasen versehen konnte, wenn sich die Ausgabespalten der Tabellenfunktion mit Spalten im DataFrame überschnitten.
Version 1.6.1 (2023-08-02)¶
Verhaltensänderungen¶
DataFrameWriter.save_as_tableakzeptiert jetzt ein nullwertfähiges Feld für ein vom Benutzer bereitgestelltes Schema oder ein abgeleitetes Schema auf Basis von Daten aus der Benutzereingabe.
Neue Features¶
Unterstützung neuer Funktionen in
snowflake.snowpark.functionshinzugefügt:array_sortsort_arrayarray_minarray_maxexplode_outer
Unterstützung von reinen Python-Paketen hinzugefügt, die über
Session.add_requirementsoderSession.add_packagesangegeben werden. Diese können jetzt in gespeicherten Prozeduren und UDFs verwendet werden, auch wenn die Pakete nicht im Snowflake-Anaconda-Kanal vorhanden sind.Session-Parameter
custom_packages_upload_enabledundcustom_packages_force_upload_enabledwurden hinzugefügt, um das oben erwähnte Feature zur Unterstützung reiner Python-Pakete zu aktivieren. Beide Parameter sind standardmäßig aufFalseeingestellt.Unterstützung für die Angabe von Paketanforderungen durch Übergabe einer conda-YAML-Umgebungsdatei an
Session.add_requirementswurde hinzugefügt.Unterstützung der asynchronen Ausführung von Datenframes mit mehreren Abfragen, die Bindungsvariablen enthalten, wurde hinzugefügt.
Unterstützung für das Umbenennen mehrerer Spalten in
DataFrame.renamewurde hinzugefügt.Unterstützung von Geometrie-Datentypen hinzugefügt.
Unterstützung von params in
session.sql()in gespeicherten Prozeduren hinzugefügt.Unterstützung von benutzerdefinierten Aggregatfunktionen (UDAFs) hinzugefügt. Dieses Feature befindet sich derzeit in der privaten Vorschau.
Unterstützung von vektorisierten benutzerdefinierten Tabellenfunktionen (vektorisierte UDTFs) hinzugefügt. Dieses Feature befindet sich derzeit in der öffentlichen Vorschau.
Unterstützung von Snowflake-Timestamp-Varianten (d. h.
TIMESTAMP_NTZ,TIMESTAMP_LTZ,TIMESTAMP_TZ) wurde hinzugefügt:TimestampTimezone als Argument im
TimestampType-Konstruktor hinzugefügt.Typ-Hinweise hinzugefügt:
NTZ,LTZ,TZund Timestamp, um Funktionen bei der Registrierung von UDFs zu kommentieren.
Verbesserungen¶
Redundante Typisierungserweiterungen für Abhängigkeiten wurden entfernt.
DataFrame.cache_resulterstellt jetzt eine temporäre Tabelle mit vollqualifizierten Namen unter der aktuellen Datenbank und dem aktuellen Schema.
Fehlerkorrekturen¶
Fehler behoben, bei dem die Typüberprüfung von Pandas vor dem Import durchgeführt wurde.
Fehler bei der Erstellung einer UDF mit
numpy.ufuncbehoben.Fehler behoben, bei dem
DataFrame.unionkeine korrekteSelectable.schema_query-Abfrage generierte, wenn der SQL Simplifier aktiviert ist.
Aktualisierungen der Abhängigkeiten¶
snowflake-connector-pythonauf Version 3.0.4 aktualisiert.
Version 1.5.1 (2023-06-20)¶
Neue Features und Aktualisierungen¶
Unterstützung der Laufzeitumgebung von Python 3.10 wurde hinzugefügt.
Version 1.5.0 (2023-06-13)¶
Verhaltensänderungen¶
Aggregationsergebnisse von Funktionen wie
DataFrame.aggundDataFrame.describeentfernen keine nicht druckbaren Zeichen mehr aus den Spaltennamen.
Neue Features und Aktualisierungen¶
Unterstützung für Laufzeitumgebung von Python 3.9 wurde hinzugefügt.
Unterstützung neuer Funktionen in
snowflake.snowpark.functionshinzugefügt:array_generate_rangearray_unique_aggcollect_setsequenceUnterstützung von Registrierung und Aufruf von gespeicherten Prozeduren mit Rückgabetyp
TABLEwurde hinzugefügt.Unterstützung von Parameterlänge in
StringType()wurde hinzugefügt, um die maximale Anzahl von Zeichen anzugeben, die in der Spalte gespeichert werden können.Der Alias
functions.element_at()wurde fürfunctions.get()hinzugefügt.Der Alias
Column.containswurde fürfunctions.containshinzugefügt.Experimentelles Feature
DataFrame.aliashinzugefügt.Unterstützung der Abfrage von Metadatenspalten aus Stagingbereich beim Erstellen von
DataFramemitDataFrameReaderwurde hinzugefügt.Unterstützung von
StructType.addhinzugefügt, um weitere Felder an vorhandeneStructType-Objekte anzuhängen.Unterstützung von Parameter
execute_asinStoredProcedureRegistration.register_from_file()hinzugefügt, um die Aufruferrechte für gespeicherte Prozeduren festzulegen.
Fehlerkorrekturen¶
Fehler behoben, bei dem
Dataframe.join_table_functionnicht alle notwendigen Abfragen zum Einrichten der Join-Tabellenfunktion durchführte, wenn der SQL Simplifier aktiviert war.Fehler mit Typhinweisdeklaration für kundenspezifische Typen korrigiert:
ColumnOrName,ColumnOrLiteralStr,ColumnOrSqlExpr,LiteralTypeundColumnOrLiteral, die diemypy-Prüfungen unterbrachen.Fehler behoben, bei dem
DataFrameWriter.save_as_tableundDataFrame.copy_into_tablevollqualifizierte Tabellennamen nicht parsen konnten.
Version 1.4.0 (2023-04-24)¶
Neue Features¶
Unterstützung von
session.getOrCreatehinzugefügt.Unterstützung von Alias
Column.getFieldhinzugefügt.Unterstützung neuer Funktionen in
snowflake.snowpark.functionshinzugefügt:date_addunddate_sub, um Additions- und Subtraktionsoperationen zu erleichtern.ddaydiffdexplodedarray_distinctdregexp_extractdstructdformat_numberdbrounddsubstring_index
Beim Erstellen von UDFs, UDTFs und gespeicherten Prozeduren mit
register_from_filewurde der Parameterskip_upload_on_content_matchhinzugefügt, um das Hochladen von Dateien in einen Stagingbereich zu überspringen, wenn sich die gleiche Version der Dateien bereits im Stagingbereich befindet.Unterstützung der Methode
DataFrame.save_as_tablezur Übernahme von Tabellennamen, die Punkte enthalten, wurde hinzugefügt.Vereinfachter, generierter SQL-Code, wenn auf
DataFrame.filter()oderDataFrame.order_by()eine Projektionsanweisung folgt (z. B.DataFrame.select(),DataFrame.with_column()).Unterstützung für das Erstellen dynamischer Tabellen (in privater Vorschau) mit
Dataframe.create_or_replace_dynamic_tablehinzugefügt.Optionales Argument
paramszusession.sql()hinzugefügt, um Binden von Variablen zu unterstützen. Beachten Sie, dass dieses Argument für gespeicherte Prozeduren noch nicht unterstützt wird.
Fehlerkorrekturen¶
Fehler in
strtok_to_arraybehoben, bei dem bei Übergabe eines Trennzeichens eine Ausnahme ausgelöst wurde.Fehler in
session.add_importbehoben, bei dem das Modul denselben Namespace wie andere Abhängigkeiten hatte.
Version 1.3.0 (2023-03-28)¶
Neue Features¶
Unterstützung von Trennzeichen-Parameter zu
functions.initcap()hinzugefügt.Unterstützung für
functions.hash()hinzugefügt, um eine variable Anzahl von Eingabeausdrücken zu akzeptieren.API
Session.confhinzugefügt, um die Änderbarkeit einer beliebigen Laufzeitkonfiguration abzurufen, einzustellen oder zu überprüfen.Unterstützung für die Verwaltung der Groß-/Kleinschreibung in
Row-Ergebnissen vonDataFrame.collectmithilfe des Parameterscase_sensitivehinzugefügt.Indexer-Unterstützung für
snowflake.snowpark.types.StructTypehinzugefügt.Schlüsselwortargument
log_on_exceptionzuDataframe.collectundDataframe.collect_no_waithinzugefügt, um optional die Fehlerprotokollierung für SQL-Ausnahmen zu deaktivieren.
Fehlerkorrekturen¶
Fehler behoben, bei dem eine DataFrame-Mengenoperation (
DataFrame.subtract,DataFrame.unionusw.) nach einer anderen DataFrame-Mengenoperation aufgerufen wurde undDataFrame.selectoderDataFrame.with_columneine Ausnahme auslöste.Fehler behoben, bei dem verkettete Sortieranweisungen durch den SQL Simplifier überschrieben wurden.
Verbesserungen¶
JOIN-Abfragen vereinfacht, um standardmäßig konstante Aliasse für Unterabfragen (
SNOWPARK_LEFT,SNOWPARK_RIGHT) zu verwenden. Benutzer können dies zur Laufzeit mitsession.conf.set('use_constant_subquery_alias', False)deaktivieren, um stattdessen zufällig generierte Aliasnamen zu verwenden.Angabe von Anweisungsparametern in
session.call()zugelassen.Hochladen von großen Pandas-DataFrames in gespeicherten Prozeduren aktiviert, indem standardmäßig eine Blockgröße von 100.000 Zeilen verwendet wird.
Version 1.2.0 (2023-03-02)¶
Neue Features und Aktualisierungen¶
Unterstützung für das Anzeigen von Quellcode als Kommentar in generierten Skripten bei der Registrierung von gespeicherten Prozeduren hinzugefügt. Dieses Feature ist standardmäßig aktiviert und kann durch Angabe von
source_code_display=Falsebei der Registrierung deaktiviert werden.Parameter
if_not_existshinzugefügt, der beim Erstellen einer UDF, UDTF oder einer gespeicherten Prozedur mit Snowpark Python das Erstellen der angegebenen Funktion oder Prozedur ignoriert, wenn diese bereits vorhanden ist.Akzeptieren beim Aufrufen von
snowflake.snowpark.functions.getGanzzahlen (Integer) für das Extrahieren eines Werts aus einem Array.functions.reversezu Funktionen hinzugefügt, um den Zugriff auf die in Snowflake integrierte REVERSE-Funktion zu ermöglichen.Parameter
require_scoped_urlinsnowflake.snowflake.files.SnowflakeFile.open()(in Private Preview) hinzugefügt, umis_owner_filezu ersetzen, das als veraltet markiert ist.
Fehlerkorrekturen¶
Fehler behoben, der beim Erstellen einer Snowpark-Sitzung
paramstylemitqmarküberschrieb.Fehler behoben, bei dem
df.join(..., how="cross")mitSnowparkJoinException: (1112): Unsupported using join type 'Cross'fehlschlägt.Fehler behoben, bei dem beim Abfragen einer
DataFrame-Spalte, die aus verketteten Funktionsaufrufen erstellt wurde, ein falscher Spaltenname verwendet wurde.
Version 1.1.0 (2023-01-26)¶
Neue Features und Aktualisierungen¶
asc,asc_nulls_first,asc_nulls_last,desc,desc_nulls_first,desc_nulls_last,date_partundunix_timestampzu Funktionen hinzugefügt.Eigenschaft
DataFrame.dtypeszur Rückgabe einer Liste von Spaltenname/Datentyp-Paaren hinzugefügt.Folgende Aliasse wurden hinzugefügt:
functions.expr() for functions.sql_expr()functions.date_format() for functions.to_date()functions.monotonically_increasing_id() for functions.seq8()functions.from_unixtime() for functions.to_timestamp()
Fehlerkorrekturen¶
Fehler im SQL Simplifier behoben, der in einigen Fällen Probleme beim Verarbeiten von Spalten-Aliassen und Joins hatte. Weitere Informationen dazu finden Sie unter https://github.com/snowflakedb/snowpark-python/issues/658.
Fehler im SQL Simplifier behoben, der falsche Spaltennamen für Funktionsaufrufe, NaN und INF generierte.
Verbesserungen¶
Der Sitzungsparameter
PYTHON_SNOWPARK_USE_SQL_SIMPLIFIERhat nach Veröffentlichung von Snowflake 7.3 den WertTrue. In snowpark-python liestsession.sql_simplifier_enabledstandardmäßig den Wert vonPYTHON_SNOWPARK_USE_SQL_SIMPLIFIER, was bedeutet, dass der SQL Simplifier nach Veröffentlichung von Snowflake 7.3 standardmäßig aktiviert ist. Um dies zu deaktivieren, setzen SiePYTHON_SNOWPARK_USE_SQL_SIMPLIFIERin Snowflake auf „False“, oder führen Siesession.sql_simplifier_enabled = Falsein Snowpark aus. Es wird empfohlen, den SQL Simplifier zu verwenden, da er hilft, präzisere SQL zu generieren.