Notes de version de la bibliothèque Snowpark pour Python pour 2024¶
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.
Version 1.23.0 (2024-10-09)¶
Nouvelles fonctionnalités¶
Ajout des nouvelles fonctions suivantes dans
snowflake.snowpark.functions
:make_interval
Ajout de la prise en charge de l’utilisation des constantes d’intervalle Snowflake avec
Window.range_between()
lorsque l’ordre par colonne est de type TIMESTAMP ou DATE.Ajout de la prise en charge des écritures de fichiers. Cette fonctionnalité est actuellement proposée en avant-première privée.
Ajout de
thread_id
àQueryRecord
pour suivre l’ID du thread soumettant l’historique des requêtes.Ajout de la prise en charge de
Session.stored_procedure_profiler
.
Corrections de bogues¶
Correction d’un bogue où l’enregistrement d’une procédure stockée ou d’une UDxF avec des annotations de type générait un avertissement
NoneType
has nolen()
lors de la tentative de lecture des valeurs par défaut de la fonction.
Mises à jour de l’API pandas Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la méthode
TimedeltaIndex.mean
.Ajout de la prise en charge de certains cas de colonnes
Timedelta
d’agrégation suraxis=0
avecagg
ouaggregate
.Prise en charge de
by
,left_by
,right_by
,left_index
, etright_index
pourpd.merge_asof
.Ajout de la prise en charge de la transmission de paramètres
include_describe
àSession.query_history
.Ajout de la prise en charge de
DatetimeIndex.mean
, etDatetimeIndex.std
.Ajout de la prise en charge de
Resampler.asfreq
,Resampler.indices
,Resampler.nunique
, etResampler.quantile
.Ajout de la prise en charge de la fréquence
resample
W
,ME
,YE
avecclosed = "left"
.Ajout de la prise en charge de
DataFrame.rolling.corr
etSeries.rolling.corr
pourpairwise = False
et intwindow
.Ajout de la prise en charge de la chaîne
window
basée sur le temps et demin_periods = None
pourRolling
.Prise en charge de
DataFrameGroupBy.fillna
etSeriesGroupBy.fillna
.Ajout de la prise en charge de la construction d’objets
Series
etDataFrame
avec l’objetIndex
paresseux utilisé comme argumentsdata
,index
, etcolumns
.Ajout de la prise en charge de la construction d’objets
Series
etDataFrame
avec des valeursindex
etcolumn
non présentes dansDataFrame
/Series
data
.Ajout de la prise en charge de
pd.read_sas
(utilise des pandas natifs pour le traitement).Ajout de la prise en charge de l’application de
rolling().count()
etexpanding().count()
à des séries et colonnesTimedelta
.Ajout de la prise en charge de
tz
danspd.bdate_range
etpd.date_range
.Ajout de la prise en charge de
Series.items
.Ajout de la prise en charge de
errors="ignore"
danspd.to_datetime
.Prise en charge de
DataFrame.tz_localize
etSeries.tz_localize
.Prise en charge de
DataFrame.tz_convert
etSeries.tz_convert
.Ajout de la prise en charge de l’application des fonctions Python Snowpark (par exemple,
sin
) dansSeries.map
,Series.apply
,DataFrame.apply
etDataFrame.applymap
.
Améliorations¶
Amélioration de
to_pandas
pour conserver le décalage horaire d’origine pour le type TIMESTAMP_TZ.Amélioration des résultats de
dtype
pour le type TIMESTAMP_TZ pour afficher le décalage horaire correct.Amélioration des résultats de
dtype
pour le type TIMESTAMP_LTZ pour afficher le fuseau horaire correct.Amélioration du message d’erreur lors de la transmission d’une valeur non booléenne à
numeric_only
pour les agrégations groupby.Suppression de l’avertissement inutile concernant l’algorithme de tri dans
sort_values
.Utilisation de l’objet SCOPED pour la création de tables temporaires internes. Les objets SCOPED seront limités à la portée de la procédure stockée s’ils sont créés dans une procédure stockée, sinon ils seront limités à la session. L’objet sera automatiquement nettoyé à la fin de la portée.
Amélioration des messages d’avertissement pour les opérations qui conduisent à une matérialisation avec une lenteur involontaire.
Suppression d’un message d’avertissement inutile concernant
convert_dtype
dansSeries.apply
.
Corrections de bogues¶
Correction d’un bogue où un objet
Index
créé à partir d’unSeries
/DataFrame
met à jour de manière incorrecte le nom de l’index deSeries
/DataFrame
après qu’une mise à jour sur place a été appliquée auxSeries
/DataFrame
d’origine.Suppression d’un
SettingWithCopyWarning
inutile qui apparaissait parfois lors de l’affiche de colonnesTimedelta
.Correction de l’argument
inplace
pour les objetsSeries
dérivés d’autres objetsSeries
.Correction d’un bogue où
Series.sort_values
échouait si le nom de la série chevauchait le nom de la colonne d’index.Correction d’un bogue où la transposition d’un dataframe mappait des niveaux d’index
Timedelta
aux niveaux de colonnes d’entiers.Correction d’un bogue où des méthodes
Resampler
sur des colonnes timedelta produisaient des résultats entiers.Correction d’un bogue où
pd.to_numeric()
laissait les entréesTimedelta
enTimedelta
au lieu de les convertir en entiers.Correction de la définition de
loc
lors de la définition d’une ou plusieurs lignes d’un DataFrame avec une valeur de type Series.
Version 1.22.1 (2024-09-11)¶
Il s’agit d’une republication de la version 1.22.0. Veuillez vous référer aux notes de version 1.22.0 pour le contenu détaillé de la version.
Version 1.22.0 (2024-09-10)¶
Nouvelles fonctionnalités¶
Ajout des nouvelles fonctions suivantes dans
snowflake.snowpark.functions
:array_remove
ln
Améliorations¶
Amélioration de la documentation pour
Session.write_pandas
en rendant l’optionuse_logical_type
plus explicite.Ajout de la prise en charge de la spécification des éléments suivants pour
DataFrameWriter.save_as_table
:enable_schema_evolution
data_retention_time
max_data_extension_time
change_tracking
copy_grants
iceberg_config
- Un dictionnaire pouvant contenir les options de configuration Iceberg suivantes :external_volume
catalog
base_location
catalog_sync
storage_serialization_policy
Ajout de la prise en charge de la spécification des éléments suivants pour
DataFrameWriter.copy_into_table
:iceberg_config
- Un dictionnaire pouvant contenir les options de configuration Iceberg suivantes :external_volume
catalog
base_location
catalog_sync
storage_serialization_policy
Ajout de la prise en charge de la spécification des paramètres suivants pour
DataFrame.create_or_replace_dynamic_table
:mode
refresh_mode
initialize
clustering_keys
is_transient
data_retention_time
max_data_extension_time
Corrections de bogues¶
Correction d’un bogue dans
session.read.csv
qui provoquait une erreur lors de la définition dePARSE_HEADER = True
dans un format de fichier défini en externe.Correction d’un bogue dans la génération de requêtes à partir d’opérations d’ensemble qui permettait la génération de requêtes en double lorsque les enfants avaient des sous-requêtes communes.
Correction d’un bogue dans
session.get_session_stage
qui faisait référence à une zone de préparation inexistante après le changement de base de données ou de schéma.Correction d’un bogue où l’appel de
DataFrame.to_snowpark_pandas
sans initialiser explicitement le plugin Snowpark pandas provoquait une erreur.Correction d’un bogue où l’utilisation de la fonction
explode
dans la création de table dynamique provoquait une erreur de compilation SQL due à une conversion de type booléen incorrect sur le paramètreouter
.
Mises à jour des tests locaux Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la coercition de type lors de la transmission de colonnes en entrée à des appels d’UDF.
Ajout de la prise en charge de
Index.identical
.
Corrections de bogues¶
Correction d’un bogue où le mode tronqué dans
DataFrameWriter.save_as_table
ne gérait pas correctement les DataFrames contenant uniquement un sous-ensemble de colonnes de la table existante.Correction d’un bogue où la fonction
to_timestamp
ne définissait pas le fuseau horaire par défaut du type de données de la colonne.
Mises à jour de l’API pandas Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge limitée du type
Timedelta
, incluant les caractéristiques suivantes. Les pandas Snowpark vont leverNotImplementedError
pour des cas d’utilisationTimedelta
non pris en charge.prise en charge du suivi du type
Timedelta
viacopy
,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
.prise en charge de la conversion de non-timedelta en timedelta via
astype
.NotImplementedError
sera levé pour le reste des méthodes qui ne prennent pas en chargeTimedelta
.prise en charge de la soustraction de deux horodatages pour obtenir un
Timedelta
.prise en charge l’indexation avec les colonnes de données
Timedelta
.prise en charge de l’ajout ou de la soustraction d’horodatages et de
Timedelta
.prise en charge de l’arithmétique binaire entre deux valeurs
Timedelta
.prise en charge de l’arithmétique binaire et des comparaisons entre des valeurs
Timedelta
et des valeurs numériques.prise en charge de
TimedeltaIndex
paresseux.prise en charge de
pd.to_timedelta
.prise en charge d’agrégations
GroupBy
,min
,max
,mean
,idxmax
,idxmin
,std
,sum
,median
,count
,any
,all
,size
,nunique
,head
,tail
,aggregate
.prise en charge de filtrations
GroupBy
first
etlast
.prise en charge d’attributs
TimedeltaIndex
:days
,seconds
,microseconds
etnanoseconds
.prise en charge de
diff
avec des colonnes d’horodatageaxis=0
etaxis=1
.prise en charge de méthodes
TimedeltaIndex
:ceil
,floor
etround
.prise en charge de méthode
TimedeltaIndex.total_seconds
.
Ajout de la prise en charge des opérateurs arithmétiques et de comparaison d’index.
Ajout de la prise en charge de
Series.dt.round
.Ajout de pages de documentation pour
DatetimeIndex
.Ajout de la prise en charge de
Index.name
,Index.names
,Index.rename
, etIndex.set_names
.Ajout de la prise en charge de
Index.__repr__
.Prise en charge de
DatetimeIndex.month_name
etDatetimeIndex.day_name
.Prise en charge de
Series.dt.weekday
,Series.dt.time
etDatetimeIndex.time
.Prise en charge de
Index.min
etIndex.max
.Ajout de la prise en charge de
pd.merge_asof
.Prise en charge de
Series.dt.normalize
etDatetimeIndex.normalize
.Ajout de la prise en charge de
Index.is_boolean
,Index.is_integer
,Index.is_floating
,Index.is_numeric
, etIndex.is_object
.Ajout de la prise en charge de
DatetimeIndex.round
,DatetimeIndex.floor
etDatetimeIndex.ceil
.Prise en charge de
Series.dt.days_in_month
etSeries.dt.daysinmonth
.Prise en charge de
DataFrameGroupBy.value_counts
etSeriesGroupBy.value_counts
.Prise en charge de
Series.is_monotonic_increasing
etSeries.is_monotonic_decreasing
.Prise en charge de
Index.is_monotonic_increasing
etIndex.is_monotonic_decreasing
.Ajout de la prise en charge de
pd.crosstab
.Ajout de la prise en charge de
pd.bdate_range
et de fréquences commerciales (B, BME, BMS, BQE, BQS, BYE, BYS) pour les deuxpd.date_range
etpd.bdate_range
.Ajout de la prise en charge d’objets
Index
commelabels
dansDataFrame.reindex
etSeries.reindex
.Ajout de la prise en charge de
Series.dt.days
,Series.dt.seconds
,Series.dt.microseconds
, etSeries.dt.nanoseconds
.Ajout de la prise en charge de la création d’un
DatetimeIndex
d’unIndex
de type numérique ou chaîne.Ajout de la prise en charge de l’indexation des chaînes avec des objets
Timedelta
.Ajout de la prise en charge de la méthode
Series.dt.total_seconds
.
Améliorations¶
Amélioration des performances de concaténation et de jointure lorsque des opérations sont effectuées sur une série provenant du même DataFrame en évitant les jointures inutiles.
Refactorisation de
quoted_identifier_to_snowflake_type
pour éviter de faire des requêtes de métadonnées si les types ont été mis en cache localement.Amélioration de
pd.to_datetime
pour gérer tous les cas d’entrée locaux.Création d’un index paresseux à partir d’un autre index paresseux sans extraire les données vers le client.
Élévation de
NotImplementedError
pour les opérateurs binaires d’index.Affichage d’un message d’erreur plus clair lorsque
Index.names
est défini avec un objet qui n’est pas de type liste.Émission d’un avertissement chaque fois que des valeurs
MultiIndex
sont extraites localement.Amélioration du message d’avertissement pour
pd.read_snowflake
afin d’inclure la raison de la création lorsque la création d’une table temporaire est déclenchée.Amélioration des performances pour
DataFrame.set_index
, ainsi que pour la définition deDataFrame.index
ouSeries.index
en évitant les vérifications nécessitant des opérations coûteuses. Par conséquent, lorsque le nouvel index ne correspond pas à la longueur d’objetSeries
ouDataFrame
actuelle, uneValueError
n’est plus générée. Au lieu de cela, lorsque l’objetSeries
ouDataFrame
est plus long que l’index fourni, le nouvel index deSeries
ouDataFrame
est rempli avec des valeursNaN
pour les éléments « supplémentaires ». Dans le cas contraire, les valeurs supplémentaires dans l’index fourni sont ignorées.
Corrections de bogues¶
Arrêt de l’ignorance des nanosecondes dans les scalaires
pd.Timedelta
.Correction de
AssertionError
dans l’arborescence des opérations binaires.Correction d’un bogue dans
Series.dt.isocalendar
en utilisant une Series nomméeCorrection de l’argument
inplace
pour les objets Series dérivés de colonnes DataFrame.Correction d’un bogue où
Series.reindex
etDataFrame.reindex
ne mettaient pas à jour correctement le nom de l’index des résultats.Correction d’un bogue où
Series.take
ne donnait pas d’erreur lorsqueaxis=1
était spécifié.
Version 1.21.1 (2024-09-05)¶
Corrections de bogues¶
Correction d’un bogue où l’utilisation de
to_pandas_batches
avec des tâches asynchrones causait une erreur en raison d’une mauvaise gestion de l’attente de la fin de la requête asynchrone.
Version 1.21.0 (2024-08-19)¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de
snowflake.snowpark.testing.assert_dataframe_equal
, qui est une fonction utilitaire pour vérifier l’égalité de deux DataFrames Snowpark.
Améliorations¶
Ajout de la prise en charge des limitations de taille de chaîne côté serveur.
Ajout de la prise en charge de la création et de l’appel de procédures stockées, d’UDFs et d’UDTFs avec des arguments facultatifs.
Ajout de la prise en charge de la lignée de colonnes dans l’API
DataFrame.lineage.trace
.Ajout de la prise en charge de la transmission d’options
INFER_SCHEMA
àDataFrameReader
viaINFER_SCHEMA_OPTIONS
.Ajout de la prise en charge de la transmission du paramètre
parameters
àColumn.rlike
etColumn.regexp
.Ajout de la prise en charge du nettoyage automatique des tables temporaires créées par
df.cache_result()
dans la session en cours lorsque le DataFrame n’est plus référencé (c’est-à-dire lorsqu’il est récupéré lors du ramassage). Il s’agit d’une fonction encore expérimentale qui n’est pas activée par défaut. Elle peut être activée en définissantsession.auto_clean_up_temp_table_enabled
surTrue
.Ajout de la prise en charge des littéraux de chaîne pour le paramètre
fmt
desnowflake.snowpark.functions.to_date
.
Corrections de bogues¶
Correction d’un bogue où le SQL généré pour la sélection de la colonne
*
contenait une sous-requête incorrecte.Correction d’un bogue dans
DataFrame.to_pandas_batches
où l’itérateur pouvait générer une erreur si une certaine transformation était apportée aux DataFrame pandas en raison d’un niveau d’isolation incorrect.Correction d’un bogue dans
DataFrame.lineage.trace
pour séparer correctement le nom et la version de la vue de fonctionnalité entre guillemets.Correction d’un bogue dans
Column.isin
qui causait une génération SQL non valide lorsqu’une liste vide était transmise.Correction d’un bogue qui n’élevait pas
NotImplementedError
lors de la définition d’une cellule avec un élément de type liste.
Mises à jour des tests locaux Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge des APIs suivantes :
snowflake.snowpark.functions
rank
dense_rank
percent_rank
cume_dist
ntile
datediff
array_agg
snowflake.snowpark.column.Column.within_group
Ajout de la prise en charge de l’analyse des indicateurs dans les instructions Regex pour les plans simulés. Cela maintient la parité avec les changements de
rlike
etregexp
ci-dessus.
Corrections de bogues¶
Correction d’un bogue où les fonctions de fenêtre
LEAD
etLAG
ne géraient pas correctement l’optionignore_nulls
.Correction d’un bogue où les valeurs n’étaient pas renseignées dans le DataFrame de résultat lors de l’insertion d’une opération de fusion de table.
Améliorations¶
Correction de l’indice entier dans pandas
FutureWarning
.
Mises à jour de l’API pandas Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de
DataFrame.backfill
,DataFrame.bfill
,Series.backfill
, etSeries.bfill
.Ajout de la prise en charge de
DataFrame.compare
etSeries.compare
avec les paramètres par défaut.Prise en charge de
Series.dt.microsecond
etSeries.dt.nanosecond
.Prise en charge de
Index.is_unique
etIndex.has_duplicates
.Ajout de la prise en charge de
Index.equals
.Ajout de la prise en charge de
Index.value_counts
.Prise en charge de
Series.dt.day_name
etSeries.dt.month_name
.Ajout de la prise en charge de l’indexation sur l’index, par exemple,
df.index[:10]
.Prise en charge de
DataFrame.unstack
etSeries.unstack
.Prise en charge de
DataFrame.asfreq
etSeries.asfreq
.Prise en charge de
Series.dt.is_month_start
etSeries.dt.is_month_end
.Prise en charge de
Index.all
etIndex.any
.Prise en charge de
Series.dt.is_year_start
etSeries.dt.is_year_end
.Prise en charge de
Series.dt.is_quarter_start
etSeries.dt.is_quarter_end
.Ajout de la prise en charge de
DatetimeIndex
paresseux.Prise en charge de
Series.argmax
etSeries.argmin
.Ajout de la prise en charge de
Series.dt.is_leap_year
.Ajout de la prise en charge de
DataFrame.items
.Prise en charge de
Series.dt.floor
etSeries.dt.ceil
.Ajout de la prise en charge de
Index.reindex
.Ajout de la prise en charge des propriétés
DatetimeIndex
: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
etis_leap_year
Prise en charge de
Resampler.fillna
etResampler.bfill
.Ajout de la prise en charge limitée du type
Timedelta
, incluant la création de colonnesTimedelta
etto_pandas
.Prise en charge de
Index.argmax
etIndex.argmin
.
Améliorations¶
Suppression du message d’avertissement de l’avant-première publique lors de l’importation de pandas Snowpark.
Suppression de la requête de comptage inutile dans la méthode
SnowflakeQueryCompiler.is_series_like
.Dataframe.columns
renvoie désormais un objet Index pandas natif au lieu d’un objet Index Snowpark.Refactorisation et introduction de l’argument
query_compiler
dans le constructeurIndex
pour créerIndex
à partir du compilateur de requêtes.pd.to_datetime
renvoie maintenant un objetDatetimeIndex
au lieu d’un objetSeries
.pd.date_range
renvoie maintenant un objetDatetimeIndex
au lieu d’un objetSeries
.
Corrections de bogues¶
Modification pour que la transmission d’une fonction d’agrégation non prise en charge à
pivot_table
lève une erreurNotImplementedError
au lieu deKeyError
.Suppression des étiquettes d’axe et des noms appelables des messages d’erreur et de la télémétrie concernant les agrégations non prises en charge.
Correction de
AssertionError
dansSeries.drop_duplicates
etDataFrame.drop_duplicates
lorsqu’appelé aprèssort_values
.Correction d’un bogue dans
Index.to_frame
où le nom de la colonne du cadre de résultat pouvait être erroné lorsque le nom n’est pas spécifié.Correction d’un bogue où certaines docstrings d’index sont ignorées.
Correction d’un bogue dans
Series.reset_index(drop=True)
où le nom du résultat peut être erroné.Correction d’un bogue dans
Groupby.first/last
concernant le tri par les bonnes colonnes dans l’expression de fenêtre sous-jacente.
Version 1.20.0 (2024-07-17)¶
La version 1.20.0 de la bibliothèque Snowpark pour Python ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout du traçage distribué à l’aide des APIs de télémétrie ouverte pour les fonctions de procédure stockée de table dans
DataFrame
:_execute_and_get_query_id
Ajout de la prise en charge de la fonction
arrays_zip
.Amélioration des performances pour les expressions de colonnes binaires et
df._in
en évitant les conversions inutiles pour les valeurs numériques. Vous pouvez activer cette optimisation en définissantsession.eliminate_numeric_sql_value_cast_enabled = True
.Améliorations des messages d’erreur pour
write_pandas
lorsque la table cible n’existe pas etauto_create_table=False
.Ajout du traçage de télémétrie ouverte sur les fonctions UDxF dans Snowpark.
Ajout du traçage de télémétrie ouverte lors de l’enregistrement des procédures stockées dans Snowpark.
Ajout d’un nouveau paramètre facultatif appelé
format_json
à la fonctionSession.SessionBuilder.app_name
qui définit le nom de l’application dans leSession.query_tag
dans le format JSON. Par défaut, ce paramètre est défini surFalse
.
Corrections de bogues¶
Correction d’un bogue où le SQL généré pour
lag(x, 0)
était incorrect et échouait avec le message d’erreurargument 1 to function LAG needs to be constant, found 'SYSTEM$NULL_TO_FIXED(null)'
.
Mises à jour des tests locaux Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge des APIs suivantes :
snowflake.snowpark.functions
random
Ajout de nouveaux paramètres à la fonction
patch
lors de l’enregistrement d’une fonction simulée :distinct
permet de spécifier une fonction alternative lorsqu’une fonction SQL doit être distincte.pass_column_index
transmet un paramètre nommé,column_index
, à la fonction simulée qui contient lepandas.Index
pour les données d’entrée.pass_row_index
transmet un paramètre nommé,row_index
, à la fonction simulée qui est le numéro de ligne indexé 0 sur lequel la fonction fonctionne actuellement.pass_input_data
transmet un paramètre nommé,input_data
, à la fonction simulée qui contient l’intégralité du dataframe d’entrée pour l’expression actuelle.Ajout de la prise en charge du paramètre
column_order
dans la méthodeDataFrameWriter.save_as_table
.
Corrections de bogues¶
Correction d’un bogue qui entraînait une troncature incorrecte des colonnes
DecimalType
à une précision entière lorsqu’elles étaient utilisées dansBinaryExpressions
.
Mises à jour de l’API pandas Snowpark¶
Nouvelles fonctionnalités¶
Ajouté de la prise en charge de la nouvelle API pour les éléments suivants :
DataFrames
DataFrame.nlargest
etDataFrame.nsmallest
DataFrame.assign
DataFrame.stack
DataFrame.pivot
DataFrame.to_csv
DataFrame.corr
DataFrame.corr
DataFrame.equals
DataFrame.reindex
DataFrame.at
etDataFrame.iat
Série
Series.nlargest
etSeries.nsmallest
Series.at
etSeries.iat
Series.dt.isocalendar
Series.equals
Series.reindex
Series.to_csv
Series.case_when
sauf lorsque la condition ou le remplacement peut être appeléseries.plot()
avec des données matérialisées vers le client local.
GroupBy
DataFrameGroupBy.all
etDataFrameGroupBy.any
Agrégations
DataFrameGroupBy
etSeriesGroupBy
first
etlast
DataFrameGroupBy.get_group
SeriesGroupBy.all
etSeriesGroupBy.any
Général
pd.pivot
read_excel
(utilise pandas localement pour le traitement)df.plot()
avec des données matérialisées vers le client local.
APIs existantes étendues comme suit :
Prise en charge de
replace
etfrac > 1
dansDataFrame.sample
etSeries.sample
.Ajout de la prise en charge de partielle de
Series.str.translate
où les valeurs dans latable
sont des chaînes à point de code unique.Ajout de la prise en charge du paramètre
limit
lorsque le paramètremethod
est utilisé dansfillna
.
Ajout de pages de documentation pour
Index
et ses APIs.
Corrections de bogues¶
Correction d’un problème lors de l’utilisation de np.where et df.where lorsque le scalaire
other
est le littéral 0.Correction d’un bogue concernant la perte de précision lors de la conversion en
DataFrame
pandas Snowpark ouSeries
avecdtype=np.uint64
.Correction d’un bogue où
values
est défini surindex
quandindex
etcolumns
contiennent toutes les colonnes de DataFrame pendantpivot_table
.
Améliorations¶
Ajout de la prise en charge de
Index.copy()
.Ajout de la prise en charge des APIs Index :
dtype
,values
,item()
,tolist()
,to_series()
etto_frame()
.Prise en charge étendue de DataFrames sans aucune ligne dans
pd.pivot_table
etDataFrame.pivot_table
.Ajout de la prise en charge du paramètre
inplace
dansDataFrame.sort_index
etSeries.sort_index
.
Version 1.19.0 (2024-06-25)¶
La version 1.19.0 de la bibliothèque Snowpark pour Python ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la fonction
to_boolean
.Ajout de pages de documentation pour
Index
et ses APIs.
Corrections de bogues¶
Correction d’un bogue où les procédures stockées Python avec le type de retour de tables échouent lorsqu’elles sont exécutées dans une tâche.
Correction d’un bogue où
df.dropna
échouait à cause deRecursionError: maximum recursion depth exceeded
quand le DataFrame comportait plus de 500 colonnes.Correction d’un bogue où
AsyncJob.result("no_result")
n’attendait pas que la requête termine son exécution.
Mise à jour des tests locaux¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge du paramètre
strict
lors de l’inscription d’UDFs et de procédures stockées.
Corrections de bogues¶
Correction d’un bogue dans
convert_timezone
qui provoquait une erreur lors de la définition du paramètresource_timezone
.Correction d’un bogue où la création d’un DataFrame avec des données vides de type
DateType
levaitAttributeError
.Correction d’un bogue où la fusion de table échouait lorsqu’une clause de mise à jour existait, mais qu’aucune mise à jour n’avait lieu.
Correction d’un bogue dans l’implémentation simulée de
to_char
qui levaitIndexError
lorsqu’une colonne entrante avait un index de lignes non consécutif.Correction d’un bogue dans la gestion d’expressions
CaseExpr
qui levaitIndexError
lorsqu’une colonne entrante avait un index de ligne non consécutif.Correction d’un bogue dans l’implémentation de
Column.like
qui levaitIndexError
lorsqu’une colonne entrante avait un index de ligne non consécutif.
Améliorations¶
Ajout de la prise en charge de la coercition de type dans l’implémentation de
DataFrame.replace
,DataFrame.dropna
, et dans la fonction simuléeiff
.
Mises à jour de l’API pandas Snowpark¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge partielle de
DataFrame.pct_change
etSeries.pct_change
sans les paramètresfreq
etlimit
.Ajout de la prise en charge de
Series.str.get
.Ajout de la prise en charge de
Series.dt.dayofweek
,Series.dt.day_of_week
,Series.dt.dayofyear
, etSeries.dt.day_of_year
.Ajout de la prise en charge de
Series.str.__getitem__ (Series.str[...])
.Ajout de la prise en charge de
Series.str.lstrip
etSeries.str.rstrip
.Ajout de la prise en charge de
DataFrameGroupby.size
etSeriesGroupby.size
.Ajout de la prise en charge de
DataFrame.expanding
etSeries.expanding
pour les agrégationscount
,sum
,min
,max
,mean
,std
, etvar
avecaxis=0
.Ajout de la prise en charge de
DataFrame.rolling
andSeries.rolling
pour le comptage d’agrégation avecaxis=0
Ajout de la prise en charge de
Series.str.match
.Ajout de la prise en charge de
DataFrame.resample
etSeries.resample
pour la taille d’agrégation.
Corrections de bogues¶
Correction d’un bogue qui provoquait un ordre incorrect des colonnes
GroupBy.aggregate
dans la sortie.Correction d’un bogue lors de l’appel de
DataFrame.describe
sur un cadre avec des colonnes dupliquées de différente*sdtypes
qui pouvait entraîner une erreur ou des résultats incorrects.Correction d’un bogue dans
DataFrame.rolling
etSeries.rolling
pour quewindow=0
lève désormais une erreurNotImplementedError
au lieu d’uneValueError
Améliorations¶
Ajout de la prise en charge des agrégations nommées dans
DataFrame.aggregate
etSeries.aggregate
avecaxis=0
.pd.read_csv
lit en utilisant l’analyseur CSV pandas natif, puis charge les données sur Snowflake à l’aide de parquet. Cela active la plupart des paramètres pris en charge parread_csv
, y compris l’analyse des dates et les conversions numériques. Le chargement via parquet est environ deux fois plus rapide que le chargement via CSV.Travaux initiaux pour la prise en charge d’un
pd.Index
directement dans Snowpark pandas. La rise en charge depd.Index
en tant que composant de premier ordre de Snowpark pandas est en cours de développement actif.Ajout d’un constructeur d’index paresseux et prise en charge de
len
,shape
,size
,empty
,to_pandas()
, etnames
. Pourdf.index
, Snowpark pandas crée un objet d’index paresseux.Pour
df.columns
, Snowpark pandas prend en charge une version non paresseuse d’unIndex
car les données sont déjà stockées localement.
Version 1.18.0 (2024-05-28)¶
La version 1.18.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout des méthodes
DataFrame.cache_result
etSeries.cache_result
permettant aux utilisateurs de faire persister les objetsDataFrame
etSeries
dans une table temporaire pour la durée d’une session afin d’améliorer la latence des opérations ultérieures.
Améliorations¶
Ajout de la prise en charge de
DataFrame.pivot_table
sans paramètreindex
et avec le paramètremargins
.Mise à jour de la signature de
DataFrame.shift
,Series.shift
,DataFrameGroupBy.shift
, etSeriesGroupBy.shift
pour correspondre à pandas 2.2.1. Snowpark pandas ne prend pas encore en charge l’argument de suffixe nouvellement ajouté ou les valeurs de séquence des périodes.Nouvel ajout de la prise en charge de
Series.str.split
.
Corrections de bogues¶
Correction d’un problème avec les colonnes mixtes pour les méthodes de chaînes (
Series.str.*
).
Mise à jour des tests locaux¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge des options de lecture
DataFrameReader
suivantes aux formats de fichiers CSV et JSON :PURGE
PATTERN
INFER_SCHEMA avec valeur
False
ENCODING avec valeur
UTF8
Prise en charge de
DataFrame.analytics.moving_agg
etDataFrame.analytics.cumulative_agg_agg
.Ajout de la prise en charge du paramètre
if_not_exists
lors de l’enregistrement d’UDF et des procédures stockées.
Corrections de bogues¶
Correction d’un bogue dans le traitement des formats d’heure où la partie fractionnaire de la seconde n’était pas traitée correctement.
Correction d’un bogue qui provoquait l’échec des appels de fonctions sur
*
.Correction d’un bogue qui empêchait la création d’objets de type
map
etstruct
.Correction d’un bogue où la fonction
date_add
ne pouvait pas gérer certains types numériques.Correction d’un bogue où le casting de
TimestampType
entraînait des données incorrectes.Correction d’un bogue qui faisait que les données de
DecimalType
avaient une précision incorrecte dans certains cas.Correction d’un bogue où le référencement d’une table ou d’une vue manquante générait un message d’erreur
IndexError
.Correction d’un bogue où la fonction simulée
to_timestamp_ntz
ne pouvait pas gérer les donnéesNone
.Correction d’un bogue à cause duquel des UDFs factices géraient mal les données de sortie
None
.Correction d’un bogue à cause duquel
DataFrame.with_column_renamed
ignorait les attributs deDataFrames
parents après les opérations de jointure.Correction d’un bogue où la précision à l’entier près des grandes valeurs était perdue lors de la conversion en
DataFrame
pandas.Correction d’un bogue où le schéma d’un objet
datetime
était erroné lors de la création d’unDataFrame
à partir d’unDataFrame
pandas.Correction d’un bogue dans l’implémentation de
Column.equal_nan
où les données nulles étaient traitées de manière incorrecte.Correction d’un bogue à cause duquel
DataFrame.drop
ignorait les attributs deDataFrames
parents après les opérations de jointure.Correction d’un bogue dans la fonction factice
date_part
où le type de colonne était défini de manière incorrecte.Correction d’un bogue à cause duquel
DataFrameWriter.save_as_table
ne soulevait pas d’exception lors de l’insertion de données nulles dans des colonnes non nulles.Correction d’un bogue dans l’implémentation de
DataFrameWriter.save_as_table
où :L’ajout ou la troncature échouait lorsque les données entrantes avaient un schéma différent de celui de la table existante.
Le truncate a échoué lorsque les données entrantes ne spécifiaient pas de colonnes pouvant être null.
Améliorations¶
Suppression de la vérification de la dépendance pour
pyarrow
car elle n’est pas utilisée.Amélioration de la couverture des types cibles de
Column.cast
, en ajoutant la prise en charge du casting vers les types booléens et tous les types intégraux.Alignement des erreurs lors de l’appel d’UDFs et de procédures stockées.
Ajout de messages d’erreur appropriés pour les options
is_permanent
etanonymous
dans des UDFs et l’enregistrement des procédures stockées afin d’indiquer plus clairement que ces fonctions ne sont pas encore prises en charge.Les opérations de lecture de fichiers avec des options et des valeurs non prises en charge génèrent désormais
NotImplementedError
au lieu d’avertissements et d’informations d’erreur peu claires.
Version 1.17.0 (2024-05-21)¶
La version 1.17.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout de la possibilité d’ajouter un commentaire sur les tables et les vues à l’aide des fonctions listées ci-dessous :
DataFrameWriter.save_as_table
DataFrame.create_or_replace_view
DataFrame.create_or_replace_temp_view
DataFrame.create_or_replace_dynamic_table
Améliorations¶
Amélioration du message d’erreur pour rappeler aux utilisateurs de définir
{"infer_schema": True}
lorsqu’ils lisent un fichier CSV sans spécifier son schéma.
Mise à jour des tests locaux¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la conversion des données
NumericType
etVariantType
dans les fonctions facticesto_timestamp_ltz
,to_timestamp_ntz
,to_timestamp_tz
etto_timestamp
.Ajout de la prise en charge de la conversion des données pour
DecimalType
,BinaryType
,ArrayType
,MapType
,TimestampType
,DateType
etTimeType
dans la fonction facticeto_char
.Ajout de la prise en charge des APIs suivantes :
snowflake.snowpark.functions.to_varchar
snowflake.snowpark.DataFrame.pivot
snowflake.snowpark.Session.cancel_all
Introduction d’une nouvelle classe d’exception
snowflake.snowpark.mock.exceptions.SnowparkLocalTestingException
.Ajout de la prise en charge du casting vers
FloatType
.
Corrections de bogues¶
Correction d’un bogue qui empêchait les procédures stockées et les UDFs de supprimer les importations déjà présentes dans
sys.path
lors de l’étape de nettoyage.Correction d’un bogue : lors du traitement du format
datetime
, la partie fractionnaire de la partie seconde n’est pas traitée correctement.Correction d’un bogue qui empêchait les opérations de fichiers sur la plateforme Windows de gérer correctement les séparateurs de fichiers dans les noms de répertoire.
Correction d’un bogue sur la plateforme Windows qui, lors de la lecture d’un dataframe pandas, ne permettait pas de traiter une colonne
IntervalType
contenant des données d’entiers.Correction d’un bogue qui empêchait les utilisateurs de sélectionner plusieurs colonnes avec le même alias.
Correction d’un bogue à cause duquel
Session.get_current_[schema |database| role |user| account|warehouse]
renvoie des identificateurs en majuscules lorsque les identificateurs sont entre guillemets.Correction d’un bogue à cause duquel les fonctions
substr
etsubstring
ne peuvent pas gérer unstart_expr
de base zéro.
Améliorations¶
Normalisation de l’expérience d’erreur en levant
SnowparkLocalTestingException
dans les cas d’erreur, ce qui correspond à la levée deSnowparkSQLException
dans l’exécution non locale.Amélioration de l’expérience d’erreur de la méthode
Session.write_pandas
de sorte queNotImplementError
soit levée lorsqu’elle est appelée.Alignement des erreurs liées à la réutilisation d’une session fermée dans le cadre d’une exécution non locale.
Version 1.16.0 (2024-05-08)¶
La version 1.16.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout de
snowflake.snowpark.Session.lineage.trace
pour explorer la lignée des données des objets Snowflake.Ajout de la prise en charge de l’enregistrement des procédures stockées avec des paquets donnés comme modules Python.
Ajout de la prise en charge de l’analyse des schémas de types structurés.
Corrections de bogues¶
Correction d’un bogue où, lors de la déduction d’un schéma, des guillemets simples étaient ajoutés aux fichiers de la zone de préparation qui en comportaient déjà.
Mise à jour des tests locaux¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la conversion des données
StringType
,TimestampType
etVariantType
dans la fonction facticeto_date
.Ajout de la prise en charge des APIs suivantes :
snowflake.snowpark.functions
:get
concat
concat_ws
Corrections de bogues¶
Correction d’un bogue qui empêchait la reconnaissance des valeurs
NaT
etNaN
.Correction d’un bogue où, lors de la déduction d’un schéma, des guillemets simples étaient ajoutés aux fichiers de la zone de préparation qui en comportaient déjà.
Correction d’un bogue qui empêchait
DataFrameReader.csv
de gérer les valeurs entre guillemets contenant un délimiteur.Correction d’un bogue qui faisait que lorsqu’il y avait une valeur
None
dans un calcul arithmétique, la sortie devait resterNone
au lieu demath.nan
.Correction d’un bogue dans les fonctions
sum
etcovar_pop
: lorsqu’il y a une valeurmath.nan
dans les données, la sortie devrait également êtremath.nan
.Correction d’un bogue dans lequel les opérations de zone de préparation ne peuvent pas gérer les répertoires.
Correction d’un bogue qui faisait que
DataFrame.to_pandas
devait prendre les types numériques Snowflake avec une précision de 38 commeint64
.
Version 1.15.0 (2024-04-24)¶
La version 1.15.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout du mode de sauvegarde
truncate
dansDataFrameWrite
pour écraser les tables existantes en tronquant la table sous-jacente au lieu de la supprimer.Ajout de télémétrie pour calculer la hauteur du plan de requête et le nombre de nœuds en double pendant les opérations de collecte.
Ajout des fonctions ci-dessous pour décharger les données d’un
DataFrame
dans un ou plusieurs fichiers d’une zone de préparation :DataFrame.write.json
DataFrame.write.csv
DataFrame.write.parquet
Ajout d’un traçage distribué utilisant des APIs de télémétrie ouverte pour les fonctions d’action dans
DataFrame
etDataFrameWriter
:snowflake.snowpark.DataFrame
:collect
collect_nowait
to_pandas
count
show
snowflake.snowpark.DataFrameWriter
:save_as_table
Prise en charge des
snow://
URLs poursnowflake.snowpark.Session.file.get
etsnowflake.snowpark.Session.file.get_stream
.Ajout d’une prise en charge pour l’enregistrement des procédures stockées et d’UDFs avec
comment
.La prise en charge des UDAF clientes est prête à être présentée en avant-première publique. Restez à l’écoute pour l’annonce par Snowflake de la disponibilité en avant-première des UDAF.
Ajout de la prise en charge du pivot dynamique. Cette fonctionnalité est actuellement proposée en avant-première privée.
Améliorations¶
Amélioration des performances des requêtes générées, tant au niveau de la compilation que de l’exécution, grâce à la conversion des sous-requêtes en double en expressions de tables communes (CTEs). Il s’agit d’une fonction encore expérimentale qui n’est pas activée par défaut. Vous pouvez l’activer en réglant
session.cte_optimization_enabled
surTrue
.
Corrections de bogues¶
Correction d’un bogue où
statement_params
n’est pas transmis aux exécutions de requêtes qui enregistrent des procédures stockées et des fonctions définies par l’utilisateur.Correction d’un bogue provoquant l’échec de
snowflake.snowpark.Session.file.get_stream
pour les zones de préparation entre guillemets.Correction d’un bogue qui faisait qu’une indication de type interne dans
utils.py
pouvait souleverAttributeError
lorsque le module sous-jacent ne pouvait pas être trouvé.
Mise à jour des tests locaux¶
Nouvelles fonctionnalités¶
Ajout de la prise en charge de l’enregistrement des UDFs et des procédures stockées.
Ajout de la prise en charge des APIs suivantes :
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
Ajout de la prise en charge de la conversion des données
StringType
,TimestampType
etVariantType
dans la fonction facticeto_time
.
Corrections de bogues¶
Correction d’un bogue qui remplissait en valeurs null les colonnes pour les fonctions constantes.
Correction de
to_object
,to_array
etto_binary
pour mieux gérer les entrées nulles.Correction d’un bogue empêchant la comparaison des données d’horodatage de prendre en compte les années au-delà de 2262.
Correction d’un bogue selon lequel
Session.builder.getOrCreate
devrait renvoyer la session fictive créée.
Version 1.14.0 (2024-03-20)¶
La version 1.14.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout de la prise en charge de la création d’UDTFs vectorisées avec la méthode
process
.Ajout de la prise en charge des fonctions de dataframe :
to_timestamp_ltz
to_timestamp_ntz
to_timestamp_tz
locate
Ajout de la prise en charge du type ASOF JOIN.
Ajout de la prise en charge des APIs de test locales suivantes :
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
Améliorations¶
Ajout de la télémétrie pour les tests locaux.
Amélioration du message d’erreur de
DataFrameReader
pour faire apparaître l’erreurFileNotFound
lors de la lecture d’un chemin qui n’existe pas ou lorsqu’il n’y a pas de fichiers sous le chemin.
Corrections de bogues¶
Correction d’un bogue dans
SnowflakePlanBuilder
oùsave_as_table
ne filtre pas correctement les colonnes dont le nom commence par$
et est suivi d’un chiffre.Correction d’un bogue où les paramètres d’instruction pouvaient n’avoir aucun effet lors de la résolution des importations et des paquets.
Correction de bogues lors des tests locaux :
Les jointures LEFT ANTI et LEFT SEMI suppriment les lignes dont les valeurs sont nulles.
DataFrameReader.csv
analyse incorrectement les données lorsque le paramètre facultatiffield_optionally_enclosed_by
est spécifié.Column.regexp
ne prend en compte que la première entrée lorsquepattern
est unColumn
.Table.update
soulèveKeyError
lors de la mise à jour de valeurs nulles dans les lignes.Les colonnes VARIANT soulèvent des erreurs dans
DataFrame.collect
.count_distinct
ne fonctionne pas correctement lors du comptage.Les valeurs nulles dans les colonnes de nombres entiers soulèvent
TypeError
.
Version 1.13.0 (2024-02-26)¶
La version 1.13.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Nouvelles fonctionnalités¶
Ajout de la prise en charge d’un argument facultatif
date_part
dans la fonctionlast_day
.SessionBuilder.app_name
définira lequery_tag
après la création de la session.Ajout de la prise en charge des fonctions de test locales suivantes :
current_timestamp
current_date
current_time
strip_null_value
upper
lower
length
initcap
Améliorations¶
Ajout d’une logique de nettoyage lors de l’arrêt de l’interpréteur pour fermer toutes les sessions actives.
Corrections de bogues¶
Correction d’un bogue dans
DataFrame.to_local_iterator
où l’itérateur pouvait produire des résultats erronés si une autre requête était exécutée avant la fin de l’itérateur en raison d’un mauvais niveau d’isolation.Correction d’un bogue qui tronquait les noms de tables dans les messages d’erreur lors de l’exécution d’un plan avec les tests locaux activés.
Correction d’un bogue qui faisait que
Session.range
renvoyait un résultat vide lorsque la plage était grande.
Version 1.12.1 (2024-02-08)¶
La version 1.12.1 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Améliorations¶
Utilisez
split_blocks=True
par défaut lors de la conversionto_pandas
pour une allocation optimale de la mémoire. Ce paramètre est transmis àpyarrow.Table.to_pandas
, ce qui permet àPyArrow
de diviser l’allocation de mémoire en blocs plus petits et plus faciles à gérer au lieu d’allouer un seul bloc contigu. Il en résulte une meilleure gestion de la mémoire lorsque l’on traite des ensembles de données plus importants.
Corrections de bogues¶
Correction d’un bogue dans
DataFrame.to_pandas
qui provoquait une erreur lors de l’évaluation d’un dataframe avec une colonneIntergerType
avec des valeurs nulles.
Version 1.12.0 (2024-01-29)¶
La version 1.12.0 de la bibliothèque Snowpark ajoute de nouvelles fonctionnalités.
Changements de comportement (compatible API)¶
Lors de l’analyse des types de données au cours d’une opération
to_pandas
, nous nous appuyons sur la valeur de précision GS pour résoudre les problèmes de précision des grandes valeurs entières. Cela peut affecter les utilisateurs lorsqu’une colonne qui était précédemment renvoyée en tant queint8
est renvoyée en tant queint64
. Les utilisateurs peuvent remédier à ce problème en spécifiant explicitement des valeurs de précision pour leur colonne de retour.Comportement aligné pour
Session.call
dans le cas des procédures stockées de table où l’exécution deSession.call
ne déclencherait pas une procédure stockée à moins qu’une opérationcollect()
ne soit effectuée.StoredProcedureRegistration
ajoute désormais automatiquementsnowflake-snowpark-python
en tant que dépendance du paquet sur la version locale de la bibliothèque du client. Une erreur est générée si le serveur ne peut pas prendre en charge cette version.
Nouvelles fonctionnalités¶
Exposition de
statement_params
dansStoredProcedure.__call__
.Ajout de deux arguments facultatifs à
Session.add_import
:chunk_size
: le nombre d’octets à hacher par morceau des fichiers chargés.whole_file_hash
: par défaut, seul le premier morceau de l’importation chargée est haché pour gagner du temps. Lorsque ce paramètre est défini sur True, chaque fichier chargé est entièrement haché.
Ajout des paramètres
external_access_integrations
etsecrets
lors de la création d’un UDAF à partir de Snowpark Python pour permettre l’intégration avec un accès externe.Ajout d’une nouvelle méthode
Session.append_query_tag
, qui permet d’ajouter une balise supplémentaire à la balise de requête actuelle en l’ajoutant sous la forme d’une valeur séparée par des virgules.Ajout d’une nouvelle méthode
Session.update_query_tag
, qui permet de mettre à jour une balise de requête de dictionnaire encodée JSON.SessionBuilder.getOrCreate
tentera désormais de remplacer le singleton qu’il renvoie lorsque l’expiration du jeton a été détectée.Ajout des fonctions suivantes dans
snowflake.snowpark.functions
:array_except
create_map
sign
/signum
Les fonctions suivantes ont été ajoutées à
DataFrame.analytics
:Ajout de la fonction
moving_agg
dansDataFrame.analytics
pour permettre les agrégations mobiles telles que les sommes et les moyennes avec plusieurs tailles de fenêtres.Ajout de la fonction
cummulative_agg
dansDataFrame.analytics
pour permettre les agrégations mobiles telles que les sommes et les moyennes avec plusieurs tailles de fenêtres.
Corrections de bogues¶
Correction d’un bogue dans
DataFrame.na.fill
qui entraînait le remplacement erroné des valeurs booléennes par des valeurs entières.Correction d’un bogue dans
Session.create_dataframe
où le DataFrames Snowpark créé en utilisant les DataFrames pandas ne déduisait pas correctement le type pour les colonnes d’horodatage. Le comportement est le suivant :Auparavant, les colonnes d’horodatage sans fuseau horaire étaient converties en époques de nanosecondes et déduites comme
LongType()
, mais elles seront désormais correctement maintenues en tant que valeurs d’horodatage et déduites commeTimestampType(TimestampTimeZone.NTZ)
.Auparavant, les colonnes d’horodatage comportant un fuseau horaire étaient déduites comme
TimestampType(TimestampTimeZone.NTZ)
et perdaient les informations relatives au fuseau horaire, mais elles sont désormais correctement déduites commeTimestampType(TimestampTimeZone.LTZ)
et les informations relatives au fuseau horaire sont conservées correctement.Définissez le paramètre de session
PYTHON_SNOWPARK_USE_LOGICAL_TYPE_FOR_CREATE_DATAFRAME
pour revenir à l’ancien comportement. Snowflake vous recommande de mettre à jour votre code pour l’aligner sur le comportement correct, car le paramètre sera supprimé à l’avenir.
Correction d’un bogue qui faisait que
DataFrame.to_pandas
obtenait un type décimal lorsque l’échelle n’était pas 0, et créait un objet dtype danspandas
. Au lieu de cela, nous convertissons la valeur en un type float64.Correction de bogues qui aplatissaient à tort le SQL généré lorsque l’une des situations suivantes se produit :
DataFrame.filter()
est appelé aprèsDataFrame.sort().limit()
.DataFrame.sort()
oufilter()
est appelé sur un DataFrame qui possède déjà une fonction de fenêtre ou une colonne de générateur de données dépendant de la séquence. Par exemple,df.select("a", seq1().alias("b")).select("a", "b").sort("a")
n’aplatira plus la clause de tri.Une fenêtre ou une colonne de générateur de données dépendant de la séquence est utilisée après
DataFrame.limit()
. Par exemple,df.limit(10).select(row_number().over())
n’aplatira pas la limite et la sélection dans le SQL généré.
Correction d’un bogue où donner un alias à une colonne DataFrame provoquait une erreur lorsque le DataFame était copié à partir d’un autre DataFrame avec une colonne possédant un alias. Par exemple,
df = df.select(col("a").alias("b")) df = copy(df) df.select(col("b").alias("c")) # Threw an error. Now it's fixed.
Correction d’un bogue dans
Session.create_dataframe
qui faisait que le champ n’acceptant pas la valeur nulle dans un schéma n’était pas respecté pour le type booléen. Notez que cette solution n’est efficace que si l’utilisateur a le privilège de créer une table temporaire.Correction d’un bogue dans le simplificateur SQL où les instructions non sélectionnées dans
session.sql
supprimaient une requête SQL lorsqu’elles étaient utilisées aveclimit()
.Correction d’un bogue qui soulevait une exception lorsque le paramètre de session
ERROR_ON_NONDETERMINISTIC_UPDATE
est true.