Changements dans l’API Snowpark

Cette rubrique résume les changements apportés à l’API Snowpark.

Dans ce chapitre :

Versions après 0.7.0

Pour connaître les modifications apportées aux versions de la bibliothèque après 0.7.0, consultez l’historique des versions client sur le site de la communauté Snowflake.

Version 0.7.0

La version 0.7.0 de la bibliothèque Snowpark introduit quelques changements au niveau de l’API, ainsi que de nouvelles fonctionnalités, améliorations et corrections de bogues.

Nouvelles APIs

  • Introduction de la nouvelle méthode Session.close(). Appelez cette méthode pour fermer la session Snowpark, ce qui annule toutes les requêtes en cours et empêche l’utilisation ultérieure de cette session pour exécuter des requêtes.

  • Introduction de la nouvelle classe Updatable. Updatable étend la classe DataFrame et fournit des capacités supplémentaires liées aux tables (par exemple, la possibilité de mettre à jour et de supprimer des valeurs).

    La méthode Session.table() renvoie désormais un objet Updatable, plutôt qu’un objet DataFrame.

  • Introduction de nouvelles signatures pour les méthodes registerTemporary de la classe UDFRegistration. Ces signatures ne comportent pas de paramètre pour le nom de l’UDF, ce qui signifie que vous pouvez les utiliser pour enregistrer une UDF temporaire anonyme.

Changements au niveau de l’API

  • Comme mentionné dans Nouvelles APIs, la méthode Session.table() renvoie maintenant un objet Updatable, qui étend DataFrame.

  • Dans la classe Geography, suppression de la prise en charge des formats autres que GeoJSON. Maintenant, Geography ne prend en charge que le format de données GeoJSON.

Améliorations

  • Amélioration de la méthode DataFrame.cacheResult() pour réduire la possibilité d’erreurs de type « L’objet existe déjà ».

  • Amélioration de certains messages d’erreur.

  • Ajout d’un nouveau message de journal qui imprime les informations de session après la connexion.

Corrections de bogues

  • Correction d’un problème dans lequel la méthode DataFrame.show() n’affichait pas correctement les données binaires.

  • Correction d’une erreur qui se produisait lors de l’obtention du numéro de version.

Version 0.6.0

La version 0.6.0 de la bibliothèque Snowpark introduit quelques changements au niveau de l’API, ainsi que de nouvelles fonctionnalités, améliorations et corrections de bogues.

Changements au niveau de l’API

Dans cette version, les méthodes suivantes de RelationalGroupedDataFrame nécessitent désormais un argument :

  • avg

  • max

  • median

  • min

  • sum

Dans les versions précédentes, si vous appeliez ces méthodes sans argument, elles étaient appliquées à toutes les colonnes numériques du DataFrame. Par exemple, pour un DataFrame df avec les colonnes (a int, b string, c float), appeler df.groupBy("a").max() équivalait à appeler df.groupBy("a").max(col("a"), col("c")).

Avec cette version, l’appel de ces méthodes sans argument donne lieu à une SnowparkClientException.

Version 0.5.0

La version 0.5.0 de la bibliothèque Snowpark introduit quelques changements au niveau de l”, ainsi que de nouvelles fonctionnalités, améliorations et corrections de bogues.

Nouvelles fonctionnalités

  • Ajout d’un paramètre maxWidth à la méthode DataFrame.show(). Vous pouvez utiliser ce paramètre pour ajuster le nombre de caractères imprimés dans la sortie pour chaque colonne.

  • Ajout de la méthode Session.cancelAll(), que vous pouvez utiliser pour annuler toutes les actions en cours sur cette session.

  • Ajout de la méthode DataFrame.toLocalIterator(), qui renvoie un itérateur que vous pouvez utiliser pour récupérer des données, ligne par ligne. Vous pouvez utiliser ceci plutôt que DataFrame.collect(), si vous ne voulez pas charger toutes les données en mémoire en une seule fois.

  • Ajout de la méthode médiane à la classe RelationalGroupedDataFrame.

Améliorations

  • Amélioration du message d’erreur renvoyé lorsqu’un identificateur n’est pas valide.

  • Amélioration de la vérification des erreurs pour signaler une erreur lorsqu’aucun nom de base de données ou de schéma n’est spécifié.

  • Ajout d’une amélioration des performances lors de l’insertion d’un grand nombre de valeurs dans une table.

  • Mise à jour de la bibliothèque pour gérer de manière cohérente les identificateurs d’objets Snowflake (noms de tables et de vues). Désormais, tous les paramètres qui spécifient des noms de tables ou de vues prennent en charge l’utilisation des éléments suivants :

    • Noms courts (par exemple, table_name et view_name)

    • Noms entièrement qualifiés (par exemple, database.schema.table_name)

    • Identificateurs en plusieurs parties (par exemple, Seq("database", "schema", "view_name"))

  • Ajout d’un contrôle pour vérifier que la version prise en charge de Scala est utilisée. La bibliothèque signalera une erreur si la version de Scala n’est pas compatible.

Corrections de bogues

  • Correction d’un problème d’enregistrement d’UDFs sous Microsoft Windows.

  • Correction d’un problème avec l’ordre des résultats lors de l’utilisation de DataFrame.sort() avec DataFrame.limit().

  • Correction de Session.range() pour générer une séquence de chiffres sans trous.

Version 0.4.1

Dans cette version, il n’est plus nécessaire de spécifier un schéma temporaire ou une base de données temporaire pour les objets Snowpark (les paramètres TEMP_SCHEMA et TEMP_DB). La bibliothèque Snowpark crée automatiquement des versions temporaires des objets nécessaires.

En outre, cette version introduit les changements au niveau de l’API énumérés dans les sections suivantes.

Changements au niveau de l’API

  • Remplacement de la méthode DataFrame.cache() par la méthode DataFrame.cacheResult().

    La nouvelle méthode crée et renvoie un nouveau DataFrame avec les résultats mis en cache et n’a aucun effet sur le DataFrame actuel. Suite à cette modification, l’objet DataFrame est désormais immuable.

Nouvelles APIs

Corrections de bogues

  • Correction d’un problème lorsque le nom de la colonne DataFrame contient des guillemets.

  • Correction d’un problème d’impossibilité d’échapper aux données contenant des barres obliques inverses, des guillemets simples et des caractères de saut de ligne.

  • Correction d’un problème où la création d’UDF échoue avec le message d’erreur indiquant que le code est trop long.

  • Correction d’un problème où la fermeture de l’UDF ne capturait pas la valeur d’une variable locale de type chaîne.

  • Ajout du schéma de résultat pour les clauses SQL suivantes

    • GRANT/REVOKE

    • DESCRIBE

    • CREATE

    • USE

  • Correction d’un problème lors de l’utilisation de Snowpark dans Visual Studio Code avec l’extension Metals pour créer une UDF.