1.25.0 (2024-11-13)
Snowpark Python API Updates
New Features
- Added the following new functions in
snowflake.snowpark.dataframe
:map
- Added support for passing parameter
include_error
toSession.query_history
to record queries that have error during execution.
Improvements
- When target stage is not set in profiler, a default stage from
Session.get_session_stage
is used instead of raisingSnowparkSQLException
. - Allowed lower case or mixed case input when calling
Session.stored_procedure_profiler.set_active_profiler
. - Added distributed tracing using open telemetry APIs for action function in
DataFrame
:cache_result
- Removed opentelemetry warning from logging.
Bug Fixes
- Fixed the pre-action and post-action query propagation when
In
expression were used in selects. - Fixed a bug that raised error
AttributeError
while callingSession.stored_procedure_profiler.get_output
whenSession.stored_procedure_profiler
is disabled.
Dependency Updates
- Added a dependency on
protobuf>=5.28
andtzlocal
at runtime. - Added a dependency on
protoc-wheel-0
for the development profile. - Require
snowflake-connector-python>=3.12.0, <4.0.0
(was>=3.10.0
).
Snowpark pandas API Updates
Dependency Updates
- Updated
modin
from 0.28.1 to 0.30.1. - Added support for all
pandas
2.2.x versions.
New Features
- Added support for
Index.to_numpy
. - Added support for
DataFrame.align
andSeries.align
foraxis=0
. - Added support for
size
inGroupBy.aggregate
,DataFrame.aggregate
, andSeries.aggregate
. - Added support for
snowflake.snowpark.functions.window
- Added support for
pd.read_pickle
(Uses native pandas for processing). - Added support for
pd.read_html
(Uses native pandas for processing). - Added support for
pd.read_xml
(Uses native pandas for processing). - Added support for aggregation functions
"size"
andlen
inGroupBy.aggregate
,DataFrame.aggregate
, andSeries.aggregate
. - Added support for list values in
Series.str.len
.
Bug Fixes
- Fixed a bug where aggregating a single-column dataframe with a single callable function (e.g.
pd.DataFrame([0]).agg(np.mean)
) would fail to transpose the result. - Fixed bugs where
DataFrame.dropna()
would:- Treat an empty
subset
(e.g.[]
) as if it specified all columns instead of no columns. - Raise a
TypeError
for a scalarsubset
instead of filtering on just that column. - Raise a
ValueError
for asubset
of typepandas.Index
instead of filtering on the columns in the index.
- Treat an empty
- Disable creation of scoped read only table to mitigate Disable creation of scoped read only table to mitigate
TableNotFoundError
when using dynamic pivot in notebook environment. - Fixed a bug when concat dataframe or series objects are coming from the same dataframe when axis = 1.
Improvements
- Improve np.where with scalar x value by eliminating unnecessary join and temp table creation.
- Improve get_dummies performance by flattening the pivot with join.
Snowpark Local Testing Updates
New Features
- Added support for patching functions that are unavailable in the
snowflake.snowpark.functions
module. - Added support for
snowflake.snowpark.functions.any_value
Bug Fixes
- Fixed a bug where
Table.update
could not handleVariantType
,MapType
, andArrayType
data types. - Fixed a bug where column aliases were incorrectly resolved in
DataFrame.join
, causing errors when selecting columns from a joined DataFrame. - Fixed a bug where
Table.update
andTable.merge
could fail if the target table's index was not the defaultRangeIndex
.