Versionshinweise zur Snowpark-Bibliothek für Python 2024

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.23.0 (09.10.2024)

Neue Features

  • Die folgenden neuen Funktionen wurden in snowflake.snowpark.functions hinzugefügt:

    • make_interval

  • Es wurde Unterstützung für die Verwendung von Snowflake-Intervallkonstanten mit Window.range_between() hinzugefügt, wenn die Spaltenreihenfolge TIMESTAMP oder DATE ist.

  • Unterstützung für das Schreiben von Dateien wurde hinzugefügt. Dieses Feature befindet sich derzeit in der privaten Vorschau.

  • thread_id wurde zu QueryRecord hinzugefügt, um die Thread-ID zu verfolgen, die den Verlauf der Abfrage übermittelt.

  • Unterstützung von Session.stored_procedure_profiler hinzugefügt.

Fehlerkorrekturen

  • Es wurde ein Fehler korrigiert, bei dem die Registrierung einer gespeicherten Prozedur oder UDxF mit Typhinweisen eine NoneType-Warnung ergab und kein len() enthält, wenn versucht wurde, Standardwerte aus einer Funktion zu lesen.

Snowpark Pandas API-Aktualisierungen

Neue Features

  • Unterstützung für die Methode TimedeltaIndex.mean hinzugefügt.

  • Unterstützung für einige Fälle der Aggregation von Timedelta-Spalten für axis=0 mit agg oder aggregate hinzugefügt.

  • Unterstützung für by, left_by, right_by, left_index, und right_index für pd.merge_asof hinzugefügt.

  • Unterstützung für die Übergabe des Parameters include_describe an Session.query_history hinzugefügt.

  • Unterstützung für die Methoden DatetimeIndex.mean und DatetimeIndex.std hinzugefügt.

  • Unterstützung für Resampler.asfreq, Resampler.indices, Resampler.nunique und Resampler.quantile hinzugefügt.

  • Unterstützung für die resample-Frequenz W, ME, YE mit closed = "left" hinzugefügt.

  • Unterstützung für DataFrame.rolling.corr und Series.rolling.corr für pairwise = False und int window hinzugefügt.

  • Unterstützung für zeitbasierte Zeichenfolgen window und min_periods = None für Rolling hinzugefügt.

  • Unterstützung für DataFrameGroupBy.fillna und SeriesGroupBy.fillna hinzugefügt.

  • Unterstützung für die Konstruktion von Series- und DataFrame-Objekten mit dem lazy Index-Objekt als data, index- und columns-Argumente hinzugefügt.

  • Unterstützung für die Konstruktion von Series- und DataFrame-Objekten mit index und column-Werten hinzugefügt, die nicht in DataFrame/Series data vorhanden sind.

  • Unterstützung für pd.read_sas hinzugefügt (verwendet natives Pandas für die Verarbeitung).

  • Unterstützung für die Anwendung von rolling().count() und expanding().count() auf Timedelta-Serien und -Spalten hinzugefügt.

  • Unterstützung für tz sowohl in pd.date_range als auch pd.bdate_range hinzugefügt.

  • Unterstützung von Series.items hinzugefügt.

  • Unterstützung von errors="ignore" in pd.to_datetime hinzugefügt.

  • Unterstützung für DataFrame.tz_localize und Series.tz_localize hinzugefügt.

  • Unterstützung für DataFrame.tz_convert und Series.tz_convert hinzugefügt.

  • Unterstützung für die Anwendung von Snowpark Python-Funktionen (z. B. sin) in Series.map, Series.apply, DataFrame.apply und DataFrame.applymap hinzugefügt.

Verbesserungen

  • Verbesserung von to_pandas, sodass das ursprüngliche Zeitzonen-Offset für den Typ TIMESTAMP_TZ beibehalten wird.

  • Verbesserung von dtype-Ergebnissen für den Typ TIMESTAMP_TZ, um das korrekte Zeitzonen-Offset anzuzeigen.

  • Verbesserung von dtype-Ergebnissen für den Typ TIMESTAMP_LTZ, um die richtige Zeitzone anzuzeigen.

  • Verbesserte Fehlermeldung bei der Übergabe von Nicht-Bool-Werten an numeric_only für group by-Aggregationen.

  • Unnötige Warnung über den Sortieralgorithmus in sort_values entfernt.

  • Das SCOPED-Objekt wird für die interne Erstellung von temporären Tabellen verwendet. Die SCOPED-Objekte sind von einer sproc-Methode abhängig, wenn sie in der sproc-Methode erstellt wurden. Anderenfalls sind sie von einer Sitzung abhängig, und das Objekt wird am Ende des Bereichs automatisch gelöscht.

  • Verbesserte Warnmeldungen für Operationen, die zu einer unerwünschten Verlangsamung der Materialisierung führen.

  • Unnötige Warnmeldung über convert_dtype in Series.apply entfernt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem ein Index-Objekt, das aus einem Series/DataFrame erstellt wurde, den Indexnamen von Series/DataFrame falsch aktualisiert, nachdem eine Inplace-Aktualisierung auf das ursprüngliche Series/DataFrame angewendet worden war.

  • Unterdrückt eine nicht hilfreiche SettingWithCopyWarning, die manchmal beim Drucken von Timedelta-Spalten erschien.

  • Korrektur des inplace-Arguments für Series-Objekte, die von anderen Series-Objekten abgeleitet sind.

  • Korrektur eines Fehlers, bei dem Series.sort_values fehlschlug, wenn sich der Name der Serie mit dem Namen der Indexspalte überschnitt.

  • Korrektur eines Fehlers, bei dem das Transponieren eines Dataframes die Zuordnung von Timedelta-Indexebenen zu Ganzzahl-Spaltenebenen zur Folge hatte.

  • Korrektur eines Fehlers, bei dem die Resampler-Methoden für Timedelta-Spalten Ganzzahl-Ergebnisse lieferten.

  • Korrektur eines Fehlers, bei dem pd.to_numeric() die Timedelta-Eingaben als Timedelta belassen hat, anstatt sie in Ganzzahlen umzuwandeln.

  • Korrektur der loc-Einstellung bei der Einstellung einer einzelnen Zeile oder mehrerer Zeilen eines DataFrame mit einem Serienwert.

Version 1.22.1 (11.09.2024)

  • Dies ist ein Re-Release von 1.22.0. Den detaillierten Inhalt des Release 1.22.0 entnehmen Sie bitte den Versionshinweisen.

Version 1.22.0 (10.09.2024)

Neue Features

  • Die folgenden neuen Funktionen wurden in snowflake.snowpark.functions hinzugefügt:

    • array_remove

    • ln

Verbesserungen

  • Die Dokumentation für Session.write_pandas wurde verbessert, indem die Option use_logical_type deutlicher hervorgehoben wird.

  • Unterstützung für die Angabe von Folgendem in DataFrameWriter.save_as_table hinzugefügt:

    • enable_schema_evolution

    • data_retention_time

    • max_data_extension_time

    • change_tracking

    • copy_grants

    • iceberg_config – Ein Wörterbuch, das die folgenden Optionen der Iceberg-Konfiguration enthalten kann:

      • external_volume

      • catalog

      • base_location

      • catalog_sync

      • storage_serialization_policy

  • Unterstützung für die Angabe von Folgendem in DataFrameWriter.copy_into_table hinzugefügt:

    • iceberg_config – Ein Wörterbuch, das die folgenden Optionen der Iceberg-Konfiguration enthalten kann:

      • external_volume

      • catalog

      • base_location

      • catalog_sync

      • storage_serialization_policy

  • Unterstützung für die Angabe der folgende Parameter in DataFrame.create_or_replace_dynamic_table hinzugefügt:

    • mode

    • refresh_mode

    • initialize

    • clustering_keys

    • is_transient

    • data_retention_time

    • max_data_extension_time

Fehlerkorrekturen

  • Korrektur eines Fehlers in session.read.csv, der einen Fehler bei der Einstellung von PARSE_HEADER = True in einem extern definierten Dateiformat verursachte.

  • Korrektur eines Fehlers bei der Generierung von Abfragen aus festgelegten Operationen, der die Generierung von doppelten Abfragen ermöglichte, wenn untergeordnete Elemente gemeinsame Unterabfragen haben.

  • Korrektur eines Fehlers in session.get_session_stage, der nach einem Wechsel der Datenbank oder des Schemas auf einen nicht existierenden Stagingbereich verwies.

  • Korrektur eines Fehlers, bei dem der Aufruf von DataFrame.to_snowpark_pandas ohne explizite Initialisierung des Snowpark Pandas-Plugins einen Fehler verursachte.

  • Korrektur eines Fehlers, bei dem die Verwendung der Funktion explode bei der dynamischen Tabellenerstellung einen SQL-Kompilierungsfehler verursachte, der auf ein falsches Casting des booleschen Typs für den Parameter outer zurückzuführen war.

Lokale Snowpark-Testaktualisierungen

Neue Features

  • Unterstützung für Typenzwang bei der Übergabe von Spalten als Eingabe für UDF-Aufrufe hinzugefügt.

  • Unterstützung von Index.identical hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem der Kürzungsmodus in DataFrameWriter.save_as_table nicht korrekt mit DataFrames umging, die nur eine Teilmenge der Spalten der vorhandenen Tabelle enthielten.

  • Korrektur eines Fehlers, bei dem die Funktion to_timestamp die Standardzeitzone des Spaltendatentyps nicht einstellt.

Snowpark Pandas API-Aktualisierungen

Neue Features

  • Beschränkte Unterstützung für den Typ Timedelta, einschließlich der folgenden Funktionen hinzugefügt. Snowpark Pandas erhöht NotImplementedError für nicht unterstützte Timedelta-Anwendungsfälle.

    • Unterstützung für die Verfolgung des Timedelta-Typs durch copy, cache_result, shift, sort_index, assign, bfill, ffill, fillna, compare, diff, drop, dropna, duplicated, empty, equals, insert, isin, isna, items, iterrows, join, len, mask, melt, merge, nlargest, nsmallest, to_pandas.

    • Unterstützung für die Konvertierung von Nicht-Timedelta in Timedelta über astype.

    • NotImplementedError wird für die übrigen Methoden, die Timedelta nicht unterstützen, ausgelöst.

    • Unterstützung für die Subtraktion von zwei Zeitstempeln, um ein Timedelta zu erhalten.

    • Unterstützung der Indizierung mit Timedelta-Datenspalten.

    • Unterstützung für das Hinzufügen oder Subtrahieren von Zeitstempeln und Timedelta.

    • Unterstützung für binäre Arithmetik zwischen zwei Timedelta-Werten.

    • Unterstützung für binäre Arithmetik und Vergleiche zwischen Timedelta-Werten und numerischen Werten.

    • Unterstützung für Lazy-TimedeltaIndex.

    • Unterstützung für pd.to_timedelta.

    • Unterstützung für GroupBy-Aggregationen min, max, mean, idxmax, idxmin, std, sum, median, count, any, all, size, nunique, head, tail, aggregate.

    • Unterstützung für GroupBy-Filtrationen first und last.

    • Unterstützung für TimedeltaIndex-Attribute: days, seconds, microseconds und nanoseconds.

    • Unterstützung für diff mit Zeitstempelspalten auf axis=0 und axis=1.

    • Unterstützung für TimedeltaIndex-Methoden: ceil, floor und round.

    • Unterstützung für die TimedeltaIndex.total_seconds-Methode.

  • Unterstützung für die arithmetischen und vergleichenden Operatoren des Index hinzugefügt.

  • Unterstützung von Series.dt.round hinzugefügt.

  • Dokumentationsseiten für DatetimeIndex hinzugefügt.

  • Unterstützung für Index.name, Index.names, Index.rename und Index.set_names hinzugefügt.

  • Unterstützung von Index.__repr__ hinzugefügt.

  • Unterstützung für DatetimeIndex.month_name und DatetimeIndex.day_name hinzugefügt.

  • Unterstützung für Series.dt.weekday, Series.dt.time und DatetimeIndex.time hinzugefügt.

  • Unterstützung für Index.min und Index.max hinzugefügt.

  • Unterstützung von pd.merge_asof hinzugefügt.

  • Unterstützung für Series.dt.normalize und DatetimeIndex.normalize hinzugefügt.

  • Unterstützung für Index.is_boolean, Index.is_integer, Index.is_floating, Index.is_numeric und Index.is_object hinzugefügt.

  • Unterstützung für DatetimeIndex.round, DatetimeIndex.floor und DatetimeIndex.ceil hinzugefügt.

  • Unterstützung für Series.dt.days_in_month und Series.dt.daysinmonth hinzugefügt.

  • Unterstützung für DataFrameGroupBy.value_counts und SeriesGroupBy.value_counts hinzugefügt.

  • Unterstützung für Series.is_monotonic_increasing und Series.is_monotonic_decreasing hinzugefügt.

  • Unterstützung für Index.is_monotonic_increasing und Index.is_monotonic_decreasing hinzugefügt.

  • Unterstützung von pd.crosstab hinzugefügt.

  • Unterstützung für pd.bdate_range hinzugefügt und Unterstützung für Geschäftshäufigkeit (B, BME, BMS, BQE, BQS, BYE, BYS) sowohl für pd.date_range als auch pd.bdate_range einbezogen.

  • Unterstützung für Lazy-Index-Objekte als labels in DataFrame.reindex und Series.reindex hinzugefügt.

  • Unterstützung für Series.dt.days, Series.dt.seconds, Series.dt.microseconds und Series.dt.nanoseconds hinzugefügt.

  • Unterstützung für die Erstellung eines DatetimeIndex aus einem Index vom Typ numerisch oder Zeichenfolge hinzugefügt.

  • Unterstützung für die Indizierung von Zeichenfolgen mit Timedelta-Objekten hinzugefügt.

  • Unterstützung für die Methode Series.dt.total_seconds hinzugefügt.

Verbesserungen

  • Die Concat- und Join-Leistung wurde verbessert, wenn Operationen für eine Serie durchgeführt werden, die von demselben DataFrame stammt, indem unnötige Joins vermieden wurden.

  • quoted_identifier_to_snowflake_type wurde überarbeitet, um Abfragen von Metadaten zu vermeiden, wenn die Typen lokal zwischengespeichert wurden.

  • Verbesserung von pd.to_datetime, um alle lokalen Eingaben zu verarbeiten.

  • Erstellung eines Lazy-Index aus einem anderen Lazy-Index, ohne Daten zum Client zu ziehen.

  • Auslösung eines NotImplementedError für bitweise Indexoperatoren.

  • Anzeige einer verständlicheren Fehlermeldung, wenn Index.names auf ein nicht listenähnliches Objekt festgelegt ist.

  • Auslösung einer Warnung, wenn MultiIndex-Werte lokal abgerufen werden.

  • Verbesserte Warnmeldung für pd.read_snowflake, um nun auch den Grund für die Erstellung zu enthalten, wenn die Erstellung einer temporären Tabelle ausgelöst wird.

  • Verbesserte Leistung für DataFrame.set_index oder die Einstellung DataFrame.index oder Series.index durch Vermeidung von Überprüfungen, die eine Eager-Evaluation erfordern. Wenn der neue Index nicht mit der aktuellen Series- oder DataFrame-Objektlänge übereinstimmt, wird folglich kein ValueError mehr ausgelöst. Wenn das Series- oder DataFrame-Objekt länger als der angegebene Index ist, wird der neue Series- oder DataFrame-Index stattdessen mit NaN-Werten für die „zusätzlichen“ Elemente gefüllt. Anderenfalls werden die zusätzlichen Werte im angegebenen Index ignoriert.

Fehlerkorrekturen

  • Nanosekunden werden in pd.Timedelta-Skalaren nicht mehr ignoriert.

  • Korrektur von AssertionError im Strukturbaum von binären Operationen.

  • Korrektur eines Fehlers in Series.dt.isocalendar bei Verwendung einer benannten Serie

  • Korrektur des inplace-Arguments für Serienobjekte, die von DataFrame-Spalten abgeleitet sind.

  • Korrektur eines Fehlers, bei dem Series.reindex und DataFrame.reindex den Namen des Ergebnisindexes nicht korrekt aktualisiert haben.

  • Korrektur eines Fehlers, bei dem Series.take keinen Fehler anzeigte, wenn axis=1 angegeben war.

Version 1.21.1 (05.09.2024)

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem die Verwendung von to_pandas_batches mit asynchronen Abfragen zu einem Fehler führte, da das Warten auf den Abschluss einer asynchronen Abfrage nicht korrekt behandelt wurde.

Version 1.21.0 (19.08.2024)

Neue Features

  • Unterstützung für snowflake.snowpark.testing.assert_dataframe_equal hinzugefügt, eine Funktion zur Überprüfung der Gleichheit zweier Snowpark DataFrames.

Verbesserungen

  • Unterstützung für serverseitige Beschränkungen der Zeichenfolgengröße hinzugefügt.

  • Unterstützung für das Erstellen und Aufrufen von gespeicherten Prozeduren, UDFs und UDTFs mit optionalen Argumenten hinzugefügt.

  • Unterstützung für die Spaltenabfolge in der DataFrame.lineage.trace-API hinzugefügt.

  • Unterstützung für die Übergabe von INFER_SCHEMA-Optionen an DataFrameReader über INFER_SCHEMA_OPTIONS hinzugefügt.

  • Unterstützung für die Übergabe des Parameters parameters an Column.rlike und Column.regexp hinzugefügt.

  • Unterstützung für die automatische Bereinigung von temporären Tabellen hinzugefügt, die von df.cache_result() in der aktuellen Sitzung erstellt wurden, wenn der DataFrame nicht mehr referenziert wird (d. h. Abrufen von Garbage Collect). Es handelt sich noch um eine experimentelle Funktion, die nicht standardmäßig aktiviert ist. Sie kann durch Einstellen von session.auto_clean_up_temp_table_enabled auf True aktiviert werden.

  • Unterstützung für Zeichenfolgenliterale für den Parameter fmt von snowflake.snowpark.functions.to_date hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem die für die Auswahl der Spalte * generierte SQL eine falsche Unterabfrage enthält.

  • Korrektur eines Fehlers in DataFrame.to_pandas_batches, bei dem der Iterator einen Fehler auslösen konnte, wenn eine bestimmte Transformation des Pandas DataFrame aufgrund der falschen Isolationsstufe vorgenommen wurde.

  • Korrektur eines Fehlers in DataFrame.lineage.trace, um den Namen und die Version der zitierten Funktionsansicht korrekt aufzuteilen.

  • Korrektur eines Fehlers in Column.isin, der dazu führte, dass SQL ungültig wurde, wenn eine leere Liste übergeben wurde.

  • Korrektur eines Fehlers, der bei der Einstellung einer Zelle mit einem listenähnlichen Element NotImplementedError nicht auslöst.

Lokale Snowpark-Testaktualisierungen

Neue Features

  • Unterstützung von folgenden APIs hinzugefügt:

    • snowflake.snowpark.functions

      • rank

      • dense_rank

      • percent_rank

      • cume_dist

      • ntile

      • datediff

      • array_agg

    • snowflake.snowpark.column.Column.within_group

  • Unterstützung für das Parsen von Flags in Regex-Anweisungen für Mock-Pläne hinzugefügt. Dies wahrt die Parität der oben genannten Änderungen von rlike und regexp.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem die Fensterfunktionen LEAD und LAG die Option ignore_nulls nicht richtig behandeln.

  • Korrektur eines Fehlers, bei dem während des Einfügens einer Operation zur Zusammenführung von Tabellen die Werte nicht in das DataFrame-Ergebnis eingefügt wurden.

Verbesserungen

  • Korrektur der Pandas FutureWarning über Ganzzahl-Indizes.

Snowpark Pandas API-Aktualisierungen

Neue Features

  • Unterstützung für DataFrame.backfill, DataFrame.bfill, Series.backfill und Series.bfill hinzugefügt.

  • Unterstützung für DataFrame.compare und Series.compare mit Standardparametern hinzugefügt.

  • Unterstützung für Series.dt.microsecond und Series.dt.nanosecond hinzugefügt.

  • Unterstützung für Index.is_unique und Index.has_duplicates hinzugefügt.

  • Unterstützung von Index.equals hinzugefügt.

  • Unterstützung von Index.value_counts hinzugefügt.

  • Unterstützung für Series.dt.day_name und Series.dt.month_name hinzugefügt.

  • Unterstützung für die Indizierung des Index hinzugefügt, z. B. df.index[:10].

  • Unterstützung für DataFrame.unstack und Series.unstack hinzugefügt.

  • Unterstützung für DataFrame.asfreq und Series.asfreq hinzugefügt.

  • Unterstützung für Series.dt.is_month_start und Series.dt.is_month_end hinzugefügt.

  • Unterstützung für Index.all und Index.any hinzugefügt.

  • Unterstützung für Series.dt.is_year_start und Series.dt.is_year_end hinzugefügt.

  • Unterstützung für Series.dt.is_quarter_start und Series.dt.is_quarter_end hinzugefügt.

  • Unterstützung für Lazy-DatetimeIndex hinzugefügt.

  • Unterstützung für Series.argmax und Series.argmin hinzugefügt.

  • Unterstützung von Series.dt.is_leap_year hinzugefügt.

  • Unterstützung von DataFrame.items hinzugefügt.

  • Unterstützung für Series.dt.floor und Series.dt.ceil hinzugefügt.

  • Unterstützung von Index.reindex hinzugefügt.

  • Unterstützung für DatetimeIndex-Eigenschaften hinzugefügt: year, month, day, hour, minute, second, microsecond, nanosecond, date, dayofyear, day_of_year, dayofweek, day_of_week, weekday, quarter, is_month_start, is_month_end, is_quarter_start, is_quarter_end, is_year_start, is_year_end und is_leap_year.

  • Unterstützung für Resampler.fillna und Resampler.bfill hinzugefügt.

  • Beschränkte Unterstützung für den Typ Timedelta hinzugefügt, einschließlich der Erstellung von Timedelta-Spalten und to_pandas.

  • Unterstützung für Index.argmax und Index.argmin hinzugefügt.

Verbesserungen

  • Die Warnmeldung für die öffentliche Vorschau beim Importieren von Snowpark Pandas wurde entfernt.

  • Unnötige Zählungsabfrage aus der Methode SnowflakeQueryCompiler.is_series_like entfernt.

  • Dataframe.columns gibt jetzt ein natives Pandas Index-Objekt anstelle eines Snowpark Index-Objekts zurück.

  • query_compiler-Argumente im Index Konstruktor überarbeitet und eingeführt, um Index aus dem Abfrage-Compiler zu erstellen.

  • pd.to_datetime gibt nun ein DatetimeIndex-Objekt statt eines Series-Objekts zurück.

  • pd.date_range gibt nun ein DatetimeIndex-Objekt statt eines Series-Objekts zurück.

Fehlerkorrekturen

  • Die Übergabe einer nicht unterstützten Aggregationsfunktion an pivot_table führt zu NotImplementedError statt KeyError.

  • Achsenbeschriftungen und aufrufbare Namen wurden aus Fehlermeldungen und Telemetrie über nicht unterstützte Aggregationen entfernt.

  • Korrektur von AssertionError in Series.drop_duplicates und DataFrame.drop_duplicates bei Aufruf nach sort_values.

  • Korrektur eines Fehlers in Index.to_frame, bei dem der Spaltenname des Ergebnisrahmens falsch sein kann, wenn der Name nicht angegeben wird.

  • Korrektur eines Fehlers, bei dem einige Index-Docstrings ignoriert wurden.

  • Korrektur eines Fehlers in Series.reset_index(drop=True), bei dem der Ergebnisname falsch sein kann.

  • Korrektur eines Fehlers in der Groupby.first/last-Sortierung nach den richtigen Spalten im zugrunde liegenden Fensterausdruck.

Version 1.20.0 (17.07.2024)

Version 1.20.0 der Snowpark-Bibliothek für Python führt einige neue Funktionen ein.

Neue Features

  • Verteilte Ablaufverfolgung unter Verwendung der offenen Telemetrie-APIs für Funktionen mit in Tabellen gespeicherten Prozeduren in DataFrame hinzugefügt:

    • _execute_and_get_query_id

  • Unterstützung für die arrays_zip-Funktion hinzugefügt.

  • Verbesserte Leistung für binäre Spaltenausdrücke und df._in durch Vermeidung von unnötigen Casts für numerische Werte. Sie können diese Optimierung durch Einstellen von session.eliminate_numeric_sql_value_cast_enabled = True aktivieren.

  • Verbesserte Fehlermeldungen für write_pandas, wenn die Zieltabelle nicht existiert und auto_create_table=False.

  • Ablaufverfolgung der offenen Telemetrie für UDxF-Funktionen in Snowpark hinzugefügt.

  • Ablaufverfolgung der offenen Telemetrie für die Registrierung von gespeicherten Prozeduren in Snowpark hinzugefügt.

  • Unterstützung eines neuen optionalen Parameters namens format_json zur Session.SessionBuilder.app_name-Funktion hinzugefügt, der den App-Namen in Session.query_tag im JSON-Format festlegt. Standardmäßig ist dieser Parameter auf False eingestellt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem die für lag(x, 0) generierte SQL falsch war und mit der Fehlermeldung argument 1 to function LAG needs to be constant, found 'SYSTEM$NULL_TO_FIXED(null)' fehlschlug.

Lokale Snowpark-Testaktualisierungen

Neue Features

  • Unterstützung von folgenden APIs hinzugefügt:

    • snowflake.snowpark.functions

      • random

  • Neue Parameter für die patch-Funktion bei der Registrierung einer Mock-Funktion hinzugefügt:

    • distinct ermöglicht die Angabe einer alternativen Funktion für den Fall, dass sich eine SQL-Funktion unterscheidet.

    • pass_column_index übergibt einen benannten Parameter (column_index) an die Mock-Funktion, die den pandas.Index für die Eingabedaten enthält.

    • pass_row_index übergibt einen benannten Parameter (row_index) an die Mock-Funktion, der die Zeilennummer mit dem Index 0 ist, für die die Funktion gerade arbeitet.

    • pass_input_data übergibt einen benannten Parameter (input_data) an die Mock-Funktion, der den gesamten Eingabe-Dataframe für den aktuellen Ausdruck enthält.

    • Unterstützung für den Parameter column_order in der Methode DataFrameWriter.save_as_table hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, der dazu führte, dass die DecimalType-Spalten bei Verwendung in BinaryExpressions fälschlicherweise auf Ganzzahlen abgeschnitten wurden.

Snowpark Pandas API-Aktualisierungen

Neue Features

  • Neue API-Unterstützung für Folgendes hinzugefügt:

    • DataFrames

      • DataFrame.nlargest und DataFrame.nsmallest

      • DataFrame.assign

      • DataFrame.stack

      • DataFrame.pivot

      • DataFrame.to_csv

      • DataFrame.corr

      • DataFrame.corr

      • DataFrame.equals

      • DataFrame.reindex

      • DataFrame.at und DataFrame.iat

    • Serie

      • Series.nlargest und Series.nsmallest

      • Series.at und Series.iat

      • Series.dt.isocalendar

      • Series.equals

      • Series.reindex

      • Series.to_csv

      • Series.case_when, außer wenn Bedingung oder Ersatz abrufbar ist

      • series.plot() mit Daten, die auf dem lokalen Client materialisiert wurden

    • GroupBy

      • DataFrameGroupBy.all und DataFrameGroupBy.any

      • DataFrameGroupBy- und SeriesGroupBy-Aggregationen first und last

      • DataFrameGroupBy.get_group

      • SeriesGroupBy.all und SeriesGroupBy.any

    • Allgemeines

      • pd.pivot

      • read_excel (verwendet lokale Pandas für die Verarbeitung)

      • df.plot() mit Daten, die auf dem lokalen Client materialisiert wurden

  • Bestehende APIs wie folgt erweitert:

    • Unterstützung für replace und frac > 1 in DataFrame.sample und Series.sample hinzugefügt.

    • Teilweise Unterstützung für Series.str.translate hinzugefügt, bei der die Werte in der table aus Zeichenfolgen mit einem Codepunkt bestehen.

    • Unterstützung für den Parameter limit hinzugefügt, wenn der Parameter method in fillna verwendet wird.

  • Dokumentationsseiten für Index und seine APIs hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Problems bei der Verwendung von np.where und df.where, wenn der skalare other das Literal 0 ist.

  • Korrektur eines Fehlers bezüglich des Präzisionsverlustes bei der Konvertierung in Snowpark Pandas DataFrame oder Series mit dtype=np.uint64.

  • Korrektur eines Fehlers, bei dem values auf index gesetzt werden, wenn index und columns alle Spalten im DataFrame während pivot_table enthalten.

Verbesserungen

  • Unterstützung von Index.copy() hinzugefügt.

  • Unterstützung für Index-APIs hinzugefügt: dtype, values, item(), tolist(), to_series() und to_frame().

  • Erweiterte Unterstützung für DataFrames ohne Zeilen in pd.pivot_table und DataFrame.pivot_table.

  • Unterstützung für den Parameter inplace in DataFrame.sort_index und Series.sort_index hinzugefügt.

Version 1.19.0 (25.06.2024)

Version 1.19.0 der Snowpark-Bibliothek für Python führt einige neue Funktionen ein.

Neue Features

  • Unterstützung für die Funktion to_boolean hinzugefügt.

  • Dokumentationsseiten für Index und dessen APIs hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, bei dem in Python gespeicherte Prozeduren mit dem Tabellenrückgabetyp nicht funktionieren, wenn sie in einer Aufgabe ausgeführt werden.

  • Korrektur eines Fehlers, bei dem df.dropna aufgrund von RecursionError: maximum recursion depth exceeded fehlschlägt, wenn der DataFrame mehr als 500 Spalten hat.

  • Korrektur eines Fehlers, bei dem AsyncJob. result("no_result") nicht darauf wartet, dass die Abfrage ausgeführt wird.

Aktualisierungen beim lokalen Testen

Neue Features

  • Unterstützung für den Parameter strict bei der Registrierung von UDFs und gespeicherten Prozeduren hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers in convert_timezone, durch den die Einstellung des Parameters source_timezone zu einem Fehler führte.

  • Korrektur eines Fehlers, bei dem das Erstellen eines DataFrame mit leeren Daten vom Typ DateType den AttributeError auslöst.

  • Korrektur eines Fehlers, bei dem die Zusammenführung von Tabellen fehlschlägt, wenn eine Aktualisierungsklausel existiert, aber keine Aktualisierung stattfindet.

  • Korrektur eines Fehlers in der Mock-Implementierung von to_char, der einen IndexError auslöst, wenn eine eingehende Spalte einen nicht fortlaufenden Zeilenindex hat.

  • Korrektur eines Fehlers bei der Behandlung von CaseExpr-Ausdrücken, der einen IndexError auslöst, wenn eine eingehende Spalte einen nicht fortlaufenden Zeilenindex hat.

  • Korrektur eines Fehlers in der Implementierung von Column.like, der einen IndexError auslöst, wenn eine eingehende Spalte einen nicht fortlaufenden Zeilenindex hat.

Verbesserungen

  • Unterstützung für Typenzwang in der Implementierung von DataFrame. replace, DataFrame. dropna und der Mock-Funktion iff hinzugefügt.

Snowpark Pandas API-Aktualisierungen

Neue Features

  • Teilweise Unterstützung für DataFrame.pct_change und Series.pct_change ohne die Parameter freq und limit hinzugefügt.

  • Unterstützung für Series.str.get hinzugefügt.

  • Unterstützung für Series.dt.dayofweek, Series.dt.day_of_week, Series.dt.dayofyear und Series.dt.day_of_year hinzugefügt.

  • Unterstützung für :codenowrap`Series.str.__getitem__ (Series.str[…])` hinzugefügt.

  • Unterstützung für Series.str.lstrip und Series.str.rstrip hinzugefügt.

  • Unterstützung für DataFrameGroupby.size und SeriesGroupby.size hinzugefügt.

  • Unterstützung für DataFrame.expanding und Series.expanding für die Aggregationen count, sum, min, max, mean, std und var mit axis=0 hinzugefügt.

  • Unterstützung für DataFrame.rolling und Series.rolling für eine Aggregationszählung mit axis=0 hinzugefügt.

  • Unterstützung für Series.str.match hinzugefügt.

  • Unterstützung für DataFrame.resample und Series.resample für die Aggregationsgröße hinzugefügt.

Fehlerkorrekturen

  • Korrektur eines Fehlers, der dazu führte, dass die Ausgabe von GroupBy.aggregate-Spalten falsch geordnet war.

  • Korrektur eines Fehlers, bei dem der Aufruf von DataFrame.describe bei einem Rahmen mit doppelten Spalten mit unterschiedlichen dtypes zu einem Fehler oder falschen Ergebnissen führen konnte.

  • Korrektur eines Fehlers in DataFrame.rolling und Series.rolling, sodass window=0 nun NotImplementedError statt ValueError auslöst

Verbesserungen

  • Unterstützung für benannte Aggregationen in DataFrame.aggregate und Series.aggregate mit axis=0 hinzugefügt.

  • pd.read_csv liest mit dem nativen Pandas CSV-Parser und lädt die Daten dann mit Parquet in Snowflake hoch. Dies aktiviert die meisten Parameter, die von read_csv unterstützt werden, einschließlich Datums-Parsing und numerischen Konvertierungen. Das Hochladen über Parquet ist etwa doppelt so schnell wie das Hochladen über CSV.

  • Erste Arbeiten zur Unterstützung eines pd.Index direkt in Snowpark Pandas. Die Unterstützung für pd.Index als erstklassige Komponente von Snowpark Pandas befindet sich in aktiver Entwicklung.

  • Ein Lazy-Index-Konstruktor und Unterstützung für len, shape, size, empty, to_pandas() und names wurden hinzugefügt. Für df.index erstellt Snowpark Pandas ein Lazy-Index-Objekt.

  • Für df.columns unterstützt Snowpark Pandas eine Nicht-Lazy-Version eines Index, da die Daten bereits lokal gespeichert sind.

Version 1.18.0 (2024-05-28)

Version 1.18.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • Die Methoden DataFrame.cache_result und Series.cache_result wurden hinzugefügt, damit Benutzer die Objekte DataFrame und Series für die Dauer einer Sitzung in einer temporären Tabelle aufbewahren können, um die Latenz bei nachfolgenden Operationen zu verbessern.

Verbesserungen

  • Unterstützung für DataFrame.pivot_table ohne den Parameter index und mit dem Parameter margins wurde hinzugefügt.

  • Signatur von DataFrame.shift, Series.shift, DataFrameGroupBy.shift und SeriesGroupBy.shift wurde aktualisiert, um mit pandas 2.2.1 übereinzustimmen. Snowpark pandas bietet noch keine Unterstützung für das neu hinzugefügte Suffix-Argument und für Sequenzwerte von Perioden.

  • Unterstützung für Series.str.split wurde wieder hinzugefügt.

Fehlerkorrekturen

  • Problem mit gemischten Spalten für Zeichenfolgen-Methoden wurde behoben (Series.str.*).

Aktualisierungen beim lokalen Testen

Neue Features

  • Unterstützung der folgenden DataFrameReader-Leseoptionen für die Dateiformate CSV und JSON wurde hinzugefügt:

    • PURGE

    • PATTERN

    • INFER_SCHEMA mit Wert False

    • ENCODING mit Wert UTF8

  • Unterstützung für DataFrame.analytics.moving_agg und DataFrame.analytics.cumulative_agg_agg hinzugefügt.

  • Unterstützung für Parameter if_not_exists bei der Registrierung von UDF und gespeicherten Prozeduren wurde hinzugefügt.

Fehlerkorrekturen

  • Fehler bei der Verarbeitung von Zeitformaten behoben, bei dem der Sekundenteil nicht korrekt verarbeitet wurde.

  • Fehler behoben, der dazu führte, dass Funktionsaufrufe von * fehlschlugen.

  • Fehler behoben, der das Erstellen von Objekten des Typs map und struct verhinderte.

  • Fehler behoben, bei dem die Funktion date_add einige numerische Typen nicht verarbeiten konnte.

  • Fehler behoben, bei dem die TimestampType-Umwandlung zu fehlerhaften Daten führte.

  • Fehler behoben, der dazu führte, dass DecimalType-Daten in einigen Fällen eine falsche Genauigkeit hatten.

  • Fehler behoben, bei dem der Verweis auf eine fehlende Tabelle oder Ansicht einen IndexError-Fehler auslöste.

  • Fehler behoben, bei dem die Mock-Funktion to_timestamp_ntz keine None-Daten verarbeiten konnte.

  • Fehler behoben, bei dem Mock-UDFs die Ausgabedaten von None nicht korrekt verarbeiteten.

  • Fehler behoben, bei dem DataFrame.with_column_renamed nach Join-Operationen die Attribute von übergeordneten DataFrames ignorierte.

  • Fehler behoben, bei dem die Integer-Genauigkeit von großen Werten verloren ging, wenn sie in ein pandas-DataFrame konvertiert wurden.

  • Fehler behoben, bei dem das Schema eines datetime-Objekts falsch war, wenn ein DataFrame aus einem pandas-DataFrame erstellt wurde.

  • Fehler in der Implementierung von Column.equal_nan behoben, bei dem Null-Daten nicht korrekt verarbeitet wurden.

  • Fehler behoben, bei dem DataFrame.drop nach Join-Operationen die Attribute von übergeordneten DataFrames ignorierte.

  • Fehler in der Mock-Funktion date_part behoben, bei dem der Spaltentyp falsch eingestellt war.

  • Fehler behoben, bei dem DataFrameWriter.save_as_table beim Einfügen von Null-Daten in nicht nullwertfähige Spalten keine Ausnahmen auslöste.

  • Fehler in der Implementierung von DataFrameWriter.save_as_table behoben:

    • Anhängen oder Abschneiden schlug fehl, wenn die eingehenden Daten ein anderes Schema hatten als die vorhandene Tabelle.

    • Abschneiden schlug fehl, wenn eingehende Daten keine Spalte enthielten, die nullwertfähig ist.

Verbesserungen

  • Abhängigkeitsprüfung für pyarrow wurde entfernt, da sie nicht verwendet wird.

  • Abdeckung der Zieltypen von Column.cast wurde verbessert, indem Unterstützung für das Umwandeln in boolesche und alle ganzzahligen Typen hinzugefügt wurde.

  • Benutzererfahrung bei Fehlern beim Aufrufen von UDFs und gespeicherten Prozeduren wurde angepasst.

  • Passende Fehlermeldungen für die Optionen is_permanent und anonymous bei der Registrierung von UDFs und gespeicherten Prozeduren hinzugefügt, um deutlicher zu machen, dass diese Features noch nicht unterstützt werden.

  • Dateileseoperationen mit nicht unterstützten Optionen und Werten lösen jetzt NotImplementedError anstelle von Warnungen und unklaren Fehlerinformationen aus.

Version 1.17.0 (2024-05-21)

Version 1.17.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • Unterstützung für das Hinzufügen eines Kommentars zu Tabellen und Ansichten mithilfe der folgenden Funktionen wurde hinzugefügt:

    • DataFrameWriter.save_as_table

    • DataFrame.create_or_replace_view

    • DataFrame.create_or_replace_temp_view

    • DataFrame.create_or_replace_dynamic_table

Verbesserungen

  • Verbesserte Fehlermeldung, die den Benutzer daran erinnert, {"infer_schema": True} zu setzen, wenn eine CSV-Datei ohne Angabe des Schemas gelesen werden soll.

Aktualisierungen beim lokalen Testen

Neue Features

  • Unterstützung für die Datenkonvertierung von NumericType und VariantType zu den Mock-Funktionen to_timestamp_ltz, to_timestamp_ntz, to_timestamp_tz und to_timestamp hinzugefügt.

  • Unterstützung für Datenkonvertierung von DecimalType, BinaryType, ArrayType, MapType, TimestampType, DateType und TimeType zur Mock-Funktion to_char hinzugefügt.

  • Unterstützung von folgenden APIs hinzugefügt:

    • snowflake.snowpark.functions.to_varchar

    • snowflake.snowpark.DataFrame.pivot

    • snowflake.snowpark.Session.cancel_all

  • Neue Ausnahmeklasse snowflake.snowpark.mock.exceptions.SnowparkLocalTestingException eingeführt.

  • Unterstützung für die Umwandelung in FloatType wurde hinzugefügt.

Fehlerkorrekturen

  • Fehler behoben, der dazu führte, dass gespeicherte Prozeduren und UDFs während des Bereinigungsschritts Importe entfernen durften, die sich bereits in sys.path befanden.

  • Fehler behoben, durch den bei der Verarbeitung des datetime-Formats der Sekundenteil nicht korrekt verarbeitet wurde.

  • Fehler behoben, bei dem Dateioperationen auf der Windows-Plattform nicht in der Lage waren, Dateitrennzeichen in Verzeichnisnamen korrekt zu verarbeiten.

  • Auf der Windows-Plattform wurde der Fehler behoben, dass beim Lesen eines pandas-Datenframe eine IntervalType-Spalte mit Integer-Daten nicht verarbeitet werden konnte.

  • Fehler behoben, der verhinderte, dass Benutzer mehrere Spalten mit demselben Alias auswählen konnten.

  • Fehler behoben, bei dem Session.get_current_[schema |database| role |user| account|warehouse] Bezeichner in Großbuchstaben zurückgibt, wenn Bezeichner in Anführungszeichen stehen.

  • Fehler behoben, bei dem die Funktionen substr und substring nicht mit einem nullbasierten start_expr umgehen konnten.

Verbesserungen

  • Die Benutzererfahrung bei Fehlern wurde vereinheitlicht, indem SnowparkLocalTestingException in Fehlerfällen ausgelöst wird, was der SnowparkSQLException entspricht, die bei nicht lokaler Ausführung ausgelöst wird.

  • Die Benutzererfahrung bei Fehlern für die Methode Session.write_pandas wurde verbessert, sodass NotImplementError beim Aufrufen ausgelöst wird.

  • Die Benutzererfahrung bei Fehlern bei der Wiederverwendung einer geschlossenen Sitzung in nicht lokaler Ausführung wurde angepasst.

Version 1.16.0 (2024-05-08)

Version 1.16.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • snowflake.snowpark.Session.lineage.trace wurde hinzugefügt, um die Herkunft der Daten von Snowflake-Objekten zu untersuchen.

  • Unterstützung für das Registrieren von gespeicherten Prozeduren mit Paketen, die als Python-Module bereitgestellt werden, wurde hinzugefügt.

  • Unterstützung für das Parsen von Schemas strukturierter Typen wurde hinzugefügt.

Fehlerkorrekturen

  • Fehler behoben, bei dem beim Ableiten eines Schemas einfache Anführungszeichen zu Stagingdateien hinzugefügt wurden, die bereits einfache Anführungszeichen aufwiesen.

Aktualisierungen beim lokalen Testen

Neue Features

  • Unterstützung für Datenkonvertierung von StringType, TimestampType und VariantType zur Mock-Funktion to_date hinzugefügt.

  • Unterstützung von folgenden APIs hinzugefügt:

    • snowflake.snowpark.functions:

      • get

      • concat

      • concat_ws

Fehlerkorrekturen

  • Fehler behoben, der dazu führte, dass die Werte NaT und NaN nicht erkannt wurden.

  • Fehler behoben, bei dem beim Ableiten eines Schemas einfache Anführungszeichen zu Stagingdateien hinzugefügt wurden, die bereits einfache Anführungszeichen aufwiesen.

  • Fehler behoben, bei dem DataFrameReader.csv nicht in der Lage war, Werte in Anführungszeichen zu verarbeiten, die ein Trennzeichen enthielten.

  • Fehler behoben, der dazu führte, dass bei einem None-Wert in einer arithmetischen Berechnung die Ausgabe math.nan statt None enthielt.

  • Fehler in den Funktionen sum und covar_pop behoben, sodass nun bei einem math.nan-Wert in den Daten auch die Ausgabe math.nan ist.

  • Fehler behoben, bei dem Stagingbereichsoperationen nicht mit Verzeichnissen umgehen konnten.

  • Fehler behoben, sodass DataFrame.to_pandas für int64-Werte den numerische Snowflake-Typen mit der Genauigkeit 38 verwendet.

Version 1.15.0 (2024-04-24)

Version 1.15.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • Speichermodus truncate zu DataFrameWrite hinzugefügt, um bestehende Tabellen zu überschreiben, indem die zugrunde liegende Tabelle abgeschnitten wird, anstatt sie zu löschen.

  • Telemetrie hinzugefügt, um die Höhe des Abfrageplans und die Anzahl der doppelten Knoten bei Sammeloperationen zu berechnen.

  • Die folgenden Funktionen wurden hinzugefügt, um Daten aus einem DataFrame in eine oder mehrere Dateien in einem Stagingbereich zu entladen:

    • DataFrame.write.json

    • DataFrame.write.csv

    • DataFrame.write.parquet

  • Verteilte Ablaufverfolgung mithilfe offener Telemetrie-APIs für Aktionsfunktionen in DataFrame und DataFrameWriter hinzugefügt:

    • snowflake.snowpark.DataFrame:

      • collect

      • collect_nowait

      • to_pandas

      • count

      • show

    • snowflake.snowpark.DataFrameWriter:

      • save_as_table

  • Unterstützung für snow://-URLs zu snowflake.snowpark.Session.file.get und snowflake.snowpark.Session.file.get_stream hinzugefügt.

  • Unterstützung für das Registrieren von gespeicherten Prozeduren und UDFs mit einem comment hinzugefügt.

  • UDAF-Clientunterstützung ist bereit für die öffentliche Vorschau. Wir werden Sie informieren, wenn Snowflake die öffentliche Vorschau für UDAF ankündigt.

  • Unterstützung für dynamisches Pivotieren hinzugefügt. Dieses Feature befindet sich derzeit in der privaten Vorschau.

Verbesserungen

  • Die Leistung der generierten Abfrage wurde sowohl bei Kompilierung als auch Ausführung verbessert, indem doppelte Unterabfragen in Common Table Expressions (CTEs) konvertiert werden. Es handelt sich um ein experimentelles Feature, das noch nicht standardmäßig aktiviert ist. Sie können es aktivieren, indem Sie session.cte_optimization_enabled auf True setzen.

Fehlerkorrekturen

  • Fehler behoben, bei dem statement_params nicht an Abfrageausführungen übergeben wurde, die gespeicherte Prozeduren und benutzerdefinierte Funktionen registrieren.

  • Fehler behoben, der dazu führte, dass snowflake.snowpark.Session.file.get_stream bei in Anführungszeichen gesetzten Speicherorten von Stagingbereichen fehlschlug.

  • Fehler behoben, durch den ein interner Typhinweis in utils.py einen AttributeError auslösen konnte, wenn das zugrunde liegende Modul nicht gefunden werden konnte.

Aktualisierungen beim lokalen Testen

Neue Features

  • Unterstützung für das Registrieren von UDFs und gespeicherten Prozeduren wurde hinzugefügt.

  • Unterstützung von folgenden APIs hinzugefügt:

    • snowflake.snowpark.Session:

      • file.put

      • file.put_stream

      • file.get

      • file.get_stream

      • read.json

      • add_import

      • remove_import

      • get_imports

      • clear_imports

      • add_packages

      • add_requirements

      • clear_packages

      • remove_package

      • udf.register

      • udf.register_from_file

      • sproc.register

      • sproc.register_from_file

    • snowflake.snowpark.functions

      • current_database

      • current_session

      • date_trunc

      • object_construct

      • object_construct_keep_null

      • pow

      • sqrt

      • udf

      • sproc

  • Unterstützung für Datenkonvertierung von StringType, TimestampType und VariantType zur Mock-Funktion to_time hinzugefügt.

Fehlerkorrekturen

  • Fehler behoben, durch den Spalten für konstante Funktionen mit Nullen gefüllt wurden.

  • to_object, to_array und to_binary korrigiert, um besser mit Nulleingaben umgehen zu können.

  • Fehler behoben, der dazu führte, dass der Vergleich von Zeitstempeldaten nicht mit Jahren größer 2262 möglich war.

  • Fehler behoben, sodass Session.builder.getOrCreate die erstellte Mock-Sitzung zurückgibt.

Version 1.14.0 (2024-03-20)

Version 1.14.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • Unterstützung für das Erstellen von vektorisierten UDTFs mit der Methode process wurde hinzugefügt.

  • Unterstützung für Datenframe-Funktionen hinzugefügt:

    • to_timestamp_ltz

    • to_timestamp_ntz

    • to_timestamp_tz

    • locate

  • Unterstützung für den ASOF JOIN-Typ hinzugefügt.

  • Unterstützung der folgenden lokalen Test-APIs wurde hinzugefügt:

    • snowflake.snowpark.functions:

      • to_double

      • to_timestamp

      • to_timestamp_ltz

      • to_timestamp_ntz

      • to_timestamp_tz

      • greatest

      • least

      • convert_timezone

      • dateadd

      • date_part

    • snowflake.snowpark.Session:

      • get_current_account

      • get_current_warehouse

      • get_current_role

      • use_schema

      • use_warehouse

      • use_database

      • use_role

Verbesserungen

  • Telemetrie für lokales Testen hinzugefügt.

  • Fehlermeldung von DataFrameReader wurde verbessert, sodass FileNotFound einen Fehler auslöst, wenn ein Pfad gelesen wird, der nicht existiert, oder wenn es keine Dateien unter dem Pfad gibt.

Fehlerkorrekturen

  • Fehler in SnowflakePlanBuilder behoben, bei dem save_as_table Spalten, deren Name mit $ gefolgt von einer Zahl beginnt, nicht korrekt gefiltert hat.

  • Fehler behoben, bei dem Anweisungsparameter bei der Auflösung von Importen und Paketen keine Wirkung haben konnten.

  • Fehler beim lokalen Testen behoben:

    • LEFT ANTI- und LEFT SEMI-Joins löschen Zeilen mit Nullwerten.

    • DataFrameReader.csv analysiert die Daten falsch, wenn der optionale Parameter field_optionally_enclosed_by angegeben ist.

    • Column.regexp berücksichtigt nur den ersten Eintrag, wenn pattern ein Column-Wert ist.

    • Table.update gibt KeyError aus, wenn in den Zeilen Nullwerte aktualisiert werden.

    • VARIANT-Spalten lösen bei DataFrame.collect einen Fehler aus.

    • count_distinct funktioniert beim Zählen nicht korrekt.

    • Nullwerte in Integer-Spalten lösen TypeError aus.

Version 1.13.0 (2024-02-26)

Version 1.13.0 der Snowpark-Bibliothek enthält einige neue Features.

Neue Features

  • Unterstützung für ein optionales Argument date_part zur Funktion last_day hinzugefügt.

  • SessionBuilder.app_name setzt den query_tag-Wert, nachdem die Sitzung erstellt wurde.

  • Unterstützung der folgenden lokalen Testfunktionen wurde hinzugefügt:

    • current_timestamp

    • current_date

    • current_time

    • strip_null_value

    • upper

    • lower

    • length

    • initcap

Verbesserungen

  • Bereinigungslogik beim Herunterfahren des Interpreters hinzugefügt, um alle aktiven Sitzungen zu schließen.

Fehlerkorrekturen

  • Fehler in DataFrame.to_local_iterator behoben, bei dem der Iterator aufgrund einer falschen Isolationsebene falsche Ergebnisse liefern konnte, wenn die Ausführung einer weiteren Abfrage gestartet wurde, bevor der Iterator endete.

  • Fehler behoben, durch den Tabellennamen in Fehlermeldungen abgeschnitten wurden, wenn ein Plan mit aktivierten lokalen Testfunktionen ausgeführt wurde.

  • Fehler behoben, bei dem Session.range ein leeres Ergebnis zurückgibt, wenn der Bereich groß ist.

Version 1.12.1 (2024-02-08)

Version 1.12.1 der Snowpark-Bibliothek enthält einige neue Features.

Verbesserungen

  • Standardmäßige Verwendung von split_blocks=True bei der to_pandas-Konvertierung, um optimale Arbeitsspeicherzuteilung zu erreichen. Dieser Parameter wird an pyarrow.Table.to_pandas übergeben, wodurch PyArrow bei der Arbeitsspeicherzuteilung anstelle eines einzigen zusammenhängenden Blocks eine Aufteilung in kleinere und damit besser zu verwaltende Blöcke vornehmen kann. Dies führt zu einer besseren Arbeitsspeicherverwaltung bei der Bearbeitung größerer Datasets.

Fehlerkorrekturen

  • Fehler in DataFrame.to_pandas behoben, der bei der Auswertung von DataFrames auftrat, die eine IntergerType-Spalte mit Nullwerten enthielten.

Version 1.12.0 (2024-01-29)

Version 1.12.0 der Snowpark-Bibliothek enthält einige neue Features.

Verhaltensänderungen (API-kompatibel)

  • Beim Parsen von Datentypen während einer to_pandas-Operation verlassen wir uns auf den GS-Präzisionswert, um Präzisionsprobleme bei großen Ganzzahlwerten zu beheben. Dies kann Benutzer betreffen, bei denen eine Spalte, die zuvor als int8 zurückgegeben wurde, nun als int64 zurückgegeben wird. Benutzer können dies beheben, indem sie für ihre Rückgabespalten explizit Präzisionswerte angeben.

  • Abgestimmtes Verhalten von Session.call im Falle von gespeicherten Tabellenprozeduren, bei denen die Ausführung von Session.call nur dann eine gespeicherte Prozedur auslösen würde, wenn eine collect()-Operation ausgeführt wird.

  • StoredProcedureRegistration fügt nun automatisch snowflake-snowpark-python als Paketabhängigkeit zur lokalen Bibliotheksversion des Clients hinzu. Wenn der Server diese Version nicht unterstützt, wird ein Fehler ausgegeben.

Neue Features

  • statement_params in StoredProcedure.__call__ bereitgestellt.

  • Zwei optionale Argumente zu Session.add_import hinzugefügt:

    • chunk_size: Anzahl der zu hashenden Bytes pro Block der hochgeladenen Dateien.

    • whole_file_hash: Standardmäßig wird nur der erste Block des hochgeladenen Imports gehasht, um Zeit zu sparen. Wenn auf „True“ gesetzt, wird stattdessen jede hochgeladene Datei vollständig gehasht.

  • Parameter external_access_integrations und secrets beim Erstellen einer UDAF zu Snowpark Python hinzugefügt, um Integration mit externem Zugriff zu ermöglichen.

  • Neue Methode Session.append_query_tag hinzugefügt, die es ermöglicht, ein zusätzliches Tag zum aktuellen Abfrage-Tag hinzuzufügen, indem es als durch Komma getrennter Wert angehängt wird.

  • Neue Methode Session.update_query_tag hinzugefügt, die Aktualisierungen eines JSON-kodierten Dictionary-Abfrage-Tags ermöglicht.

  • SessionBuilder.getOrCreate versucht nun, das Singleton zu ersetzen, das zurückgegeben wird, wenn Ablaufen des Tokens erkannt wurde.

  • Folgende Funktionen zu snowflake.snowpark.functions hinzugefügt:

    • array_except

    • create_map

    • sign / signum

  • Folgende Funktionen zu DataFrame.analytics hinzugefügt:

    • Funktion moving_agg zu DataFrame.analytics hinzugefügt, um gleitende Aggregationen wie Summen und Durchschnitte mit mehreren Fenstergrößen zu ermöglichen.

    • Funktion cummulative_agg zu DataFrame.analytics hinzugefügt, um gleitende Aggregationen wie Summen und Durchschnitte mit mehreren Fenstergrößen zu ermöglichen.

Fehlerkorrekturen

  • Fehler in DataFrame.na.fill behoben, der dazu führte, dass boolesche Werte fälschlicherweise ganzzahlige Werte überschrieben.

  • Fehler in Session.create_dataframe behoben, bei dem Snowpark-DataFrames, die aus Pandas-DataFrames erstellt wurde, den Typ für Zeitstempelspalten nicht korrekt ableitete. Der Verhalten ist wie folgt:

    • Früher wurden Zeitstempelspalten ohne Zeitzone in Nanosekunden-Epochen umgewandelt und als LongType() abgeleitet. Jetzt bleiben diese aber korrekt als Zeitstempelwerte erhalten und werden als TimestampType(TimestampTimeZone.NTZ) abgeleitet.

    • Früher wurden Zeitstempelspalten mit einer Zeitzone als TimestampType(TimestampTimeZone.NTZ) abgeleitet, wobei Zeitzoneninformationen verloren gingen. Jetzt werden sie korrekt als TimestampType(TimestampTimeZone.LTZ) abgeleitet, wobei Zeitzoneninformationen korrekt erhalten bleiben.

    • Sitzungsparameter PYTHON_SNOWPARK_USE_LOGICAL_TYPE_FOR_CREATE_DATAFRAME so festgelegt, um zum alten Verhalten zurückzukehren. Snowflake empfiehlt, dass Sie Ihren Code aktualisieren, um ihn an das korrekte Verhalten anzupassen, da der Parameter in Zukunft entfernt wird.

  • Fehler behoben, dass DataFrame.to_pandas den Dezimaltyp erhält, wenn die Dezimalstellenzahl nicht 0 ist, und in pandas ein Objekt-dtype erstellt. Stattdessen wird der Wert nun in einen float64-Typ umgewandelt.

  • Fehler behoben, bei dem der generierte SQL-Code in folgenden Fällen fälschlicherweise vereinfacht (Flatten) wurde:

    • DataFrame.filter() wird nach DataFrame.sort().limit() aufgerufen.

    • DataFrame.sort() oder filter() wird auf einem DataFrame aufgerufen, der bereits eine Fensterfunktion oder eine sequenzabhängige Datengeneratorspalte hat. Beispielsweise wird df.select("a", seq1().alias("b")).select("a", "b").sort("a") nicht mehr zum Vereinfachen (Flatten) der Sortierklausel führen.

    • Nach DataFrame.limit() wird eine Fenster- oder eine sequenzabhängige Datengeneratorspalte verwendet. Beispielsweise wird df.limit(10).select(row_number().over()) nicht mehr zum Vereinfachen (Flatten) von „limit“ und „select“ im generierten SQL führen.

  • Fehler behoben, bei dem das Aliasing einer DataFrame-Spalte zu einem Fehler führte, wenn der DataFame von einem anderen DataFrame mit Aliasing-Spalte kopiert wurde. Beispiel:

    df = df.select(col("a").alias("b"))
    df = copy(df)
    df.select(col("b").alias("c"))  # Threw an error. Now it's fixed.
    
    Copy
  • Fehler in Session.create_dataframe behoben, der dazu führte, dass das nicht nullwertfähig Feld in einem Schema bei einem booleschen Typ nicht beachtet wurde. Beachten Sie, dass dieser Fix nur wirksam ist, wenn der Benutzer die Berechtigung zum Erstellen von temporären Tabellen hat.

  • Fehler im SQL Simplifier behoben, bei dem Nicht-Select-Anweisungen in session.sql SQL-Abfragen bei Verwendung von limit() gelöscht haben.

  • Fehler behoben, der eine Ausnahme auslöste, wenn der Sitzungsparameter ERROR_ON_NONDETERMINISTIC_UPDATE den Wert „true“ hat.