github snowflakedb/snowpark-python v1.33.0
Release

latest releases: v1.38.0, v1.37.0, v1.36.0...
2 months ago

1.33.0 (2025-06-19)

Snowpark Python API Updates

New Features

  • Added support for MySQL in DataFrameWriter.dbapi (PrPr) for both Parquet and UDTF-based ingestion.
  • Added support for PostgreSQL in DataFrameReader.dbapi (PrPr) for both Parquet and UDTF-based ingestion.
  • Added support for Databricks in DataFrameWriter.dbapi (PrPr) for UDTF-based ingestion.
  • Added support to DataFrameReader to enable use of PATTERN when reading files with INFER_SCHEMA enabled.
  • Added support for the following AI-powered functions in functions.py:
    • ai_complete
    • ai_similarity
    • ai_summarize_agg (originally summarize_agg)
    • different config options for ai_classify
  • Added support for more options when reading XML files with a row tag using rowTag option:
    • Added support for removing namespace prefixes from col names using ignoreNamespace option.
    • Added support for specifying the prefix for the attribute column in the result table using attributePrefix option.
    • Added support for excluding attributes from the XML element using excludeAttributes option.
    • Added support for specifying the column name for the value when there are attributes in an element that has no child elements using valueTag option.
    • Added support for specifying the value to treat as a null value using nullValue option.
    • Added support for specifying the character encoding of the XML file using charset option.
    • Added support for ignoring surrounding whitespace in the XML element using ignoreSurroundingWhitespace option.
  • Added support for parameter return_dataframe in Session.call, which can be used to set the return type of the functions to a DataFrame object.
  • Added a new argument to Dataframe.describe called strings_include_math_stats that triggers stddev and mean to be calculated for String columns.
  • Added support for retrieving Edge.properties when retrieving lineage from DGQL in DataFrame.lineage.trace.
  • Added a parameter table_exists to DataFrameWriter.save_as_table that allows specifying if a table already exists. This allows skipping a table lookup that can be expensive.

Bug Fixes

  • Fixed a bug in DataFrameReader.dbapi (PrPr) where the create_connection defined as local function was incompatible with multiprocessing.
  • Fixed a bug in DataFrameReader.dbapi (PrPr) where databricks TIMESTAMP type was converted to Snowflake TIMESTAMP_NTZ type which should be TIMESTAMP_LTZ type.
  • Fixed a bug in DataFrameReader.json where repeated reads with the same reader object would create incorrectly quoted columns.
  • Fixed a bug in DataFrame.to_pandas() that would drop column names when converting a dataframe that did not originate from a select statement.
  • Fixed a bug that DataFrame.create_or_replace_dynamic_table raises error when the dataframe contains a UDTF and SELECT * in UDTF not being parsed correctly.
  • Fixed a bug where casted columns could not be used in the values-clause of in functions.

Improvements

  • Improved the error message for Session.write_pandas() and Session.create_dataframe() when the input pandas DataFrame does not have a column.
  • Improved DataFrame.select when the arguments contain a table function with output columns that collide with columns of current dataframe. With the improvement, if user provides non-colliding columns in df.select("col1", "col2", table_func(...)) as string arguments, then the query generated by snowpark client will not raise ambiguous column error.
  • Improved DataFrameReader.dbapi (PrPr) to use in-memory Parquet-based ingestion for better performance and security.
  • Improved DataFrameReader.dbapi (PrPr) to use MATCH_BY_COLUMN_NAME=CASE_SENSITIVE in copy into table operation.

Snowpark Local Testing Updates

New Features

  • Added support for snow urls (snow://) in local file testing.

Bug Fixes

  • Fixed a bug in Column.isin that would cause incorrect filtering on joined or previously filtered data.
  • Fixed a bug in snowflake.snowpark.functions.concat_ws that would cause results to have an incorrect index.

Snowpark pandas API Updates

Dependency Updates

  • Updated modin dependency constraint from 0.32.0 to >=0.32.0, <0.34.0. The latest version tested with Snowpark pandas is modin 0.33.1.

New Features

  • Added support for Hybrid Execution (PrPr). By running from modin.config import AutoSwitchBackend; AutoSwitchBackend.enable(), Snowpark pandas will automatically choose whether to run certain pandas operations locally or on Snowflake. This feature is disabled by default.

Improvements

  • Set the default value of the index parameter to False for DataFrame.to_view, Series.to_view, DataFrame.to_dynamic_table, and Series.to_dynamic_table.
  • Added iceberg_version option to table creation functions.
  • Reduced query count for many operations, including insert, repr, and groupby, that previously issued a query to retrieve the input data's size.

Bug Fixes

  • Fixed a bug in Series.where when the other parameter is an unnamed Series.

Don't miss a new snowpark-python release

NewReleases is sending notifications on new releases.