Notes de version de la bibliothèque Snowpark pour Python pour 2025

Cet article contient les notes de version Snowpark Library for Python, y compris les éléments suivants, le cas échéant :

  • Changements de comportement

  • Nouvelles fonctionnalités

  • Corrections de bogues pour les clients

Snowflake utilise la version sémantique pour les mises à jour Snowpark Library for Python.

Voir Guide du développeur Snowpark pour Python pour la documentation.

attention:

Python 3.8 ayant atteint sa fin de vie, des avertissements d’obsolescence seront déclenchés lors de l’utilisation de snowpark-python avec Python 3.8. Pour plus de détails, voir Prise en charge de l’environnement d’exécution Snowflake Python. Snowpark Python 1.24.0 sera la dernière version du client et du serveur à prendre en charge Python 3.8, conformément à la politique d’Anaconda. Mettez à niveau vos objets Python 3.8 existants à la version Python 3.9 ou une version plus récente.

Version 1.27.0 (2025-02-05)

Nouvelles fonctionnalités

Ajout de la prise en charge des fonctions suivantes dans functions.py :

  • array_reverse

  • divnull

  • map_cat

  • map_contains_key

  • map_keys

  • nullifzero

  • snowflake_cortex_sentiment

  • acosh

  • asinh

  • atanh

  • bit_length

  • bitmap_bit_position

  • bitmap_bucket_number

  • bitmap_construct_agg

  • cbrt

  • equal_null

  • from_json

  • ifnull

  • localtimestamp

  • max_by

  • min_by

  • nth_value

  • nvl

  • octet_length

  • position

  • regr_avgx

  • regr_avgy

  • regr_count

  • regr_intercept

  • regr_r2

  • regr_slope

  • regr_sxx

  • regr_sxy

  • regr_syy

  • try_to_binary

  • base64

  • base64_decode_string

  • base64_encode

  • editdistance

  • hex

  • hex_encode

  • instr

  • log1p

  • log2

  • log10

  • percentile_approx

  • unbase64

  • Ajout de la prise en charge de la spécification d’une chaîne de schéma (y compris la syntaxe struct implicite) lors de l’appel de DataFrame.create_dataframe.

  • Ajout de la prise en charge de DataFrameWriter.insert_into/insertInto. Cette méthode prend également en charge le mode de test local.

  • Ajout de la prise en charge de DataFrame.create_temp_view pour créer une vue temporaire. L’opération échouera si la vue existe déjà.

  • Ajout de la prise en charge de plusieurs colonnes dans les fonctions map_cat et map_concat.

  • Ajout d’une option keep_column_order pour conserver l’ordre original des colonnes dans DataFrame.with_column et DataFrame.with_columns.

  • Ajout d’options aux conversions de colonnes qui permettent de renommer ou d’ajouter des champs dans les colonnes StructType.

  • Ajout de la prise en charge de contains_null parameter à ArrayType.

  • Ajout de la prise en charge de la création d’une vue temporaire via DataFrame.create_or_replace_temp_view à partir d’un DataFrame créé par la lecture d’un fichier depuis une zone de préparation.

  • Ajout de la prise en charge du paramètre value_contains_null à MapType.

  • Ajout d”« interactif » à la télémétrie qui indique si l’environnement actuel est interactif.

  • Autorisation de session.file.get dans une Native App à lire les chemins d’accès aux fichiers commençant par / à partir de la version actuelle.

  • Ajout de la prise en charge de plusieurs fonctions d’agrégation après DataFrame.pivot.

Fonctions expérimentales

  • Ajout de la classe Catalogue pour la gestion des objets Snowflake. Vous pouvez y accéder via Session.catalog.

    • snowflake.core est une dépendance nécessaire à cette fonction.

  • Autorisation du schéma d’entrée utilisateur lors de la lecture du fichier JSON dans une zone de préparation.

  • Ajout de la prise en charge de la spécification d’une chaîne de schéma (y compris la syntaxe struct implicite) lors de l’appel de DataFrame.create_dataframe.

Améliorations

  • Mise à jour de README.md ` de sorte à inclure des instructions sur la façon de vérifier les signatures des paquets à l’aide de cosign.

Corrections de bogues

  • Correction d’un bogue dans le mode de test local qui faisait qu’une colonne contenait None alors qu’elle aurait dû contenir 0.

  • Correction d’un bogue dans StructField.from_json ` qui empêchait l’analyse correcte de TimestampTypes ` avec tzinfo `.

  • Correction d’un bogue dans function date_format qui provoquait une erreur lorsque la colonne d’entrée était de type date ou horodatage.

  • Correction d’un bogue dans DataFrame qui permettait d’insérer une valeur nulle dans une colonne non nullable.

  • Correction d’un bogue dans replace and lit qui déclenchait une erreur d’assertion d’indication de type lors du passage d’objets d’expression Column.

  • Correction d’un bogue dans pandas_udf ` et dans pandas_udtf ` à cause duquel le paramètre de session était ignoré par erreur.

  • Correction d’un bogue qui provoquait une erreur de conversion de type incorrecte pour les fonctions système appelées via session.call.

Mises à jour de l’API pandas Snowpark

Nouvelles fonctionnalités

  • Prise en charge de Series.str.ljust et Series.str.rjust.

  • Ajout de la prise en charge de Series.str.center.

  • Ajout de la prise en charge de Series.str.pad.

  • Ajout de la prise en charge de l’application de la fonction Snowpark Python snowflake_cortex_sentiment.

  • Ajout de la prise en charge de DataFrame.map.

  • Ajout de la prise en charge de DataFrame from_dict et DataFrame.from_records.

  • Ajout de la prise en charge des noms de champ en casse mixte dans les colonnes de type struct.

  • Ajout de la prise en charge de SeriesGroupBy.unique.

  • Ajout de la prise en charge de Series.dt.strftime avec les directives suivantes :

    • %d : jour du mois sous forme de nombre décimal complété par des zéros.

    • %m : mois sous forme de nombre décimal complété par des zéros.

    • %Y : année avec le siècle sous forme de nombre décimal.

    • %H : heure (horloge de 24 heures) sous forme de nombre décimal complété par des zéros.

    • %M : minute sous forme de nombre décimal complété par des zéros.

    • %S : seconde sous forme de nombre décimal complété par des zéros.

    • %f : microseconde sous forme de nombre décimal complété par des zéros jusqu’à 6 chiffres.

    • %j : jour de l’année sous forme de nombre décimal complété par des zéros.

    • %X : représentation appropriée du temps conformément aux paramètres régionaux.

    • %% : caractère « % » littéral.

  • Ajout de la prise en charge de Series.between.

  • Ajout de la prise en charge de include_groups=False dans DataFrameGroupBy.apply.

  • Ajout de la prise en charge de expand=True dans Series.str.split.

  • Prise en charge de DataFrame.pop et Series.pop.

  • Prise en charge de first et last dans DataFrameGroupBy.agg et SeriesGroupBy.agg.

  • Ajout de la prise en charge de Index.drop_duplicates.

  • Ajout de la prise en charge des agrégations "count", "median", np.median, "skew", "std", np.std "var" et np.var dans pd.pivot_table(), DataFrame.pivot_table() et pd.crosstab().

Améliorations

  • Amélioration des performances des méthodes DataFrame.map, Series.apply et Series.map en mappant les fonctions numpy vers des fonctions Snowpark, si possible.

  • Ajout de documentation pour DataFrame.map.

  • Amélioration des performances de DataFrame.apply en mappant les fonctions numpy vers des fonctions Snowpark, si possible.

  • Ajout d’une documentation sur l’étendue de l’interopérabilité de Snowpark pandas avec scikit-learn.

  • Inférence du type de renvoi des fonctions dans Series.map, Series.apply et DataFrame.map si l’indice de type n’est pas fourni.

  • Ajout de call_count à la télémétrie qui compte les appels de méthode, y compris les appels de protocole d’échange.