Changements dans l’API Snowpark

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

Dans ce chapitre :

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.