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.
Version 1.11.1 (2023-12-07)¶
Version 1.11.1 der Snowpark-Bibliothek enthält einige neue Features.
Neue Features¶
Zu
SnowflakeSQLException
wurde das Attributconn_error
hinzugefügt, das die gesamte zugrunde liegende Ausnahme vonsnowflake-connector-python
speichert.Unterstützung von
RelationalGroupedDataframe.pivot()
für den Zugriff aufpivot
im 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.functions
hinzugefügt.Unterstützung von Vektor-Datentyp hinzugefügt.
Aktualisierungen der Abhängigkeiten¶
Cloudpickle-Abhängigkeit für Verwendung mit
cloudpickle==2.2.1
aktualisiert.snowflake-connector-python
auf Version3.4.0
aktualisiert.
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_metadata
generierter DataFrame eine inkonsistente Tabelle erzeugte, wenndf.write.save_as_table
ausgefü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_names
inUDTFRegistration.register
,UDTFRegistration.register_file
undfunctions.pandas_udtf
verwendet wird. Standardmäßig entnimmtRelationalGroupedDataFrame.applyInPandas
die Spaltennamen dem aktuellen DataFrame-Schema.Attribute
sql_error_code
undraw_message
zuSnowflakeSQLException
hinzugefü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_packages
behoben, bei dem ein Anforderungsspezifikator, der einen Projektnamen mit einem Unterstrich und einer Version enthielt, nicht verarbeitet werden konnte.Problem in
DataFrame.limit()
behoben, wennoffset
verwendet wird und das übergeordneteDataFrame
verwendetlimit
. Jetzt wirkt sichoffset
nicht mehr auflimit
im übergeordneten DataFrame aus.Problem in
DataFrame.write.save_as_table
behoben, bei dem DataFrames, die aus der Lese-API erstellt wurden, aufgrund eines ungültigen Spaltennamens$1
keine Daten in Snowflake speichern konnte.
Verhaltensänderungen¶
Das Verhalten von
date_format
wurde geändert:Das Argument
format
ist 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-extensions
wurde 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
VOLATILE
undIMMUTABLE
bei der Registrierung von UDFs wurde hinzugefügt.Unterstützung für die Angabe von Gruppierungsschlüsseln beim Speichern von Datenframes mit
DataFrame.save_as_table
hinzugefügt.Iterable
-Objekte werden als Eingabe fürschema
akzeptiert, wenn Datenframes mitSession.create_dataframe
erstellt werden.Eigenschaft
DataFrame.session
wurde hinzugefügt, um einSession
-Objekt zurückzugeben.Eigenschaft
Session.session_id
wurde hinzugefügt, um einen Integer-Wert zurückzugeben, der für die Sitzungs-ID steht.Eigenschaft
Session.connection
wurde 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-python
auf 3.2.0 aktualisiert.
Fehlerkorrekturen¶
Fehler behoben, bei dem ein automatischer Paket-Upload einen
ValueError
auslöste, auch wenn insession.add_packages
kompatible Paketversionen hinzugefügt wurden.Fehler behoben, bei dem bei Verwendung von
register_from_file
die gespeicherten Tabellenprozeduren nicht korrekt registriert wurden.Fehler behoben, bei dem die Verknüpfung von Datenframes mit dem Fehler
invalid_identifier
fehlschlug.Fehler behoben, durch den
DataFrame.copy
den SQL-Simplifier für die zurückgegebene Kopie deaktivierte.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=False
werden temporäre Objekte erstellt, auch wennstage_name
bereitgestellt wird. Der Standardwert vonis_permanent
istFalse
. Wenn dieser Wert bei permanenten Objekten nicht ausdrücklich aufTrue
gesetzt wird, werden die Benutzer eine Änderung des Verhaltens feststellen.types.StructField
setzt Spaltenbezeichner jetzt standardmäßig in Anführungszeichen.
Neue Features¶
Hinzufügen der Parameter
external_access_integrations
undsecrets
, 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.functions
hinzugefügt:array_flatten
undflatten
.Unterstützung von
apply_in_pandas
insnowflake.snowpark.relational_grouped_dataframe
hinzugefügt.Unterstützung für die Replikation Ihrer lokalen Python-Umgebung nach Snowflake über
Session.replicate_local_environment
hinzugefügt.
Fehlerkorrekturen¶
Fehler behoben, bei dem
session.create_dataframe
nullwertfä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.select
bei 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_table
akzeptiert 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.functions
hinzugefügt:array_sort
sort_array
array_min
array_max
explode_outer
Unterstützung von reinen Python-Paketen hinzugefügt, die über
Session.add_requirements
oderSession.add_packages
angegeben 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_enabled
undcustom_packages_force_upload_enabled
wurden hinzugefügt, um das oben erwähnte Feature zur Unterstützung reiner Python-Pakete zu aktivieren. Beide Parameter sind standardmäßig aufFalse
eingestellt.Unterstützung für die Angabe von Paketanforderungen durch Übergabe einer conda-YAML-Umgebungsdatei an
Session.add_requirements
wurde 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.rename
wurde 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
,TZ
und Timestamp, um Funktionen bei der Registrierung von UDFs zu kommentieren.
Verbesserungen¶
Redundante Typisierungserweiterungen für Abhängigkeiten wurden entfernt.
DataFrame.cache_result
erstellt 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.ufunc
behoben.Fehler behoben, bei dem
DataFrame.union
keine korrekteSelectable.schema_query
-Abfrage generierte, wenn der SQL Simplifier aktiviert ist.
Aktualisierungen der Abhängigkeiten¶
snowflake-connector-python
auf 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.agg
undDataFrame.describe
entfernen 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.functions
hinzugefügt:array_generate_range
array_unique_agg
collect_set
sequence
Unterstützung von Registrierung und Aufruf von gespeicherten Prozeduren mit Rückgabetyp
TABLE
wurde 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.contains
wurde fürfunctions.contains
hinzugefügt.Experimentelles Feature
DataFrame.alias
hinzugefügt.Unterstützung der Abfrage von Metadatenspalten aus Stagingbereich beim Erstellen von
DataFrame
mitDataFrameReader
wurde hinzugefügt.Unterstützung von
StructType.add
hinzugefügt, um weitere Felder an vorhandeneStructType
-Objekte anzuhängen.Unterstützung von Parameter
execute_as
inStoredProcedureRegistration.register_from_file()
hinzugefügt, um die Aufruferrechte für gespeicherte Prozeduren festzulegen.
Fehlerkorrekturen¶
Fehler behoben, bei dem
Dataframe.join_table_function
nicht 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
,LiteralType
undColumnOrLiteral
, die diemypy
-Prüfungen unterbrachen.Fehler behoben, bei dem
DataFrameWriter.save_as_table
undDataFrame.copy_into_table
vollqualifizierte Tabellennamen nicht parsen konnten.
Version 1.4.0 (2023-04-24)¶
Neue Features¶
Unterstützung von
session.getOrCreate
hinzugefügt.Unterstützung von Alias
Column.getField
hinzugefügt.Unterstützung neuer Funktionen in
snowflake.snowpark.functions
hinzugefügt:date_add
unddate_sub
, um Additions- und Subtraktionsoperationen zu erleichtern.ddaydiff
dexplode
darray_distinct
dregexp_extract
dstruct
dformat_number
dbround
dsubstring_index
Beim Erstellen von UDFs, UDTFs und gespeicherten Prozeduren mit
register_from_file
wurde der Parameterskip_upload_on_content_match
hinzugefü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_table
zur Ü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_table
hinzugefügt.Optionales Argument
params
zusession.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_array
behoben, bei dem bei Übergabe eines Trennzeichens eine Ausnahme ausgelöst wurde.Fehler in
session.add_import
behoben, 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.conf
hinzugefü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.collect
mithilfe des Parameterscase_sensitive
hinzugefügt.Indexer-Unterstützung für
snowflake.snowpark.types.StructType
hinzugefügt.Schlüsselwortargument
log_on_exception
zuDataframe.collect
undDataframe.collect_no_wait
hinzugefügt, um optional die Fehlerprotokollierung für SQL-Ausnahmen zu deaktivieren.
Fehlerkorrekturen¶
Fehler behoben, bei dem eine DataFrame-Mengenoperation (
DataFrame.subtract
,DataFrame.union
usw.) nach einer anderen DataFrame-Mengenoperation aufgerufen wurde undDataFrame.select
oderDataFrame.with_column
eine 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=False
bei der Registrierung deaktiviert werden.Parameter
if_not_exists
hinzugefü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.get
Ganzzahlen (Integer) für das Extrahieren eines Werts aus einem Array.functions.reverse
zu Funktionen hinzugefügt, um den Zugriff auf die in Snowflake integrierte REVERSE-Funktion zu ermöglichen.Parameter
require_scoped_url
insnowflake.snowflake.files.SnowflakeFile.open()
(in Private Preview) hinzugefügt, umis_owner_file
zu ersetzen, das als veraltet markiert ist.
Fehlerkorrekturen¶
Fehler behoben, der beim Erstellen einer Snowpark-Sitzung
paramstyle
mitqmark
ü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_part
undunix_timestamp
zu Funktionen hinzugefügt.Eigenschaft
DataFrame.dtypes
zur 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_SIMPLIFIER
hat nach Veröffentlichung von Snowflake 7.3 den WertTrue
. In snowpark-python liestsession.sql_simplifier_enabled
standardmäß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_SIMPLIFIER
in Snowflake auf „False“, oder führen Siesession.sql_simplifier_enabled = False
in Snowpark aus. Es wird empfohlen, den SQL Simplifier zu verwenden, da er hilft, präzisere SQL zu generieren.