2026 年 Snowpark Connect for Spark 版本说明

Snowflake 对 Snowpark Connect for Spark 更新使用语义版本控制。

有关文档,请参阅 使用 Snowpark Connect for Spark 在 Snowflake 上运行 Apache Spark™ 工作负载提交 Spark 应用程序

1.22.0(2026 年 4 月 18 日)

Snowpark Connect for Spark

错误修复

  • 修复在 ORDER BY/WHERE/GROUP BY 中受 CTE 限定的列引用问题

  • 修复在使用类型连接后对连接键使用 withColumn 的问题

  • 修复当缺失子集列时 fillna 立即抛出异常的问题

  • 修复内部暂存区读取时的大小写敏感问题

  • 减少窗口函数边界物化

  • 保留内容为空的结构/映射/数组模式

  • 支持 CSV 和 JSON 读取中 INFER_SCHEMA 的 ON_ERROR=CONTINUE

  • 修复十六进制编译时类型调度

  • 避免为 read.parquet 创建冗余临时表以支持 saveAsTable

  • 在严格模式下保留 StructType/MapType

  • 列解析中的大小写不敏感限定符比较

  • CBRT 函数中使用 Snowpark 内置功能

  • 修复 XML nullValue 和空白字符处理

  • 在严格模式下对 DecimalType 使用 Decimal

  • 修复 map_concat 错误

  • 修复 unionByName 以处理列名中的引号并遵循 caseSensitive 配置

  • 移除 JSON 测试资源文件中的尾随逗号

新功能

  • 提供 Snowpark Connect Java Client 库以支持 Spark Scala 和 Java 工作负载

  • ARRAY_REPEATMAP_ENTRIES 使用原生实施

  • map_cast 中使用 MAP_ENTRIES

  • 减少 read_parquet 中用于 VARIANT 推断的查询数量

  • map_relation 添加跨请求子计划缓存

1.21.1(2026 年 4 月 10 日)

Snowpark Connect for Spark

错误修复

  • 实施 JSON 编码验证

  • 减小内部重命名列的函数的查询大小

  • 放宽 py4j 版本限制以允许更广泛的兼容性

  • 按 Spark 会话隔离工件

新功能

  • 为会话添加默认应用程序名称

  • 添加 JSON 日期/时间格式转换

1.21.0(2026 年 4 月 9 日)

Snowpark Connect for Spark

错误修复

  • 处理 CSV/JSON 路径中 Glob 通配符的转义

  • 修复 JSON 不可为空的模式,以匹配 Spark 行为

  • 为 XML 添加列匹配时的默认大小写处理规则

  • 修复 TEXT 格式中,针对 RECORD_DELIMITER 使用十六进制编码的 lineSep 问题

  • 修复 Spark 读取 XML 外部暂存区的问题

  • 空 CSV 返回空 DataFrame

  • regexp_extract 添加默认 IDX

  • 修复 CSV 不可为空的模式,以匹配 Spark 行为

  • 修复并行测试下的临时暂存区命名冲突

  • 为正则表达式函数添加快速路径

  • storeAssignmentPolicy 进行模式强制转换

  • CSV 反斜杠分隔符的双重转义

  • 优化 posexplode

  • CSV lineSep 空值校验

  • 修复 XML 无法读取外部暂存区文件的错误

  • 降低用户默认日志详细程度

新功能

  • 增加对 DML 行计数的支持

  • DataFrameWriterV2 支持 overwrite(condition)

  • Iceberg 写入时支持 mergeSchema – 顶级列演化

  • Added support for partition overwrites in DataFrameWriterV2

  • init_spark_session 中添加 app_name 参数

1.20.0(2026 年 4 月 3 日)

Snowpark Connect for Spark

错误修复

  • 修复性能问题

  • 修复 JSON 的模式合并问题

  • 修复复杂类型的 arrays_zip 问题

  • 修复隐式聚合中的 LCAs 问题

新功能

  • 缓存 JSON 文件格式的结果

  • 在绕过类型检查器的情况下,通过 map_unresolved_function 解析已知类型

  • 支持 JSON copy into 模式下的 Hive 分区

  • 在服务器初始化时添加 SCOS 会话注册

  • 使用带 DISTINCT 的字符串修改预热查询来实现筛选

1.19.0(2026 年 3 月 26 日)

Snowpark Connect for Spark

错误修复

  • 修复了通过 getItem 从数组访问结构字段的问题

  • 修复了访问数组元素的名称问题

  • 为 TEXT 格式添加了缺失的压缩支持

  • 减少了 DataFrame.replace、UDTF 创建及 read_parquet 中的查询大小

  • 在创建 [临时] 视图时模拟类型

  • 修复了类型转换结构化类型的问题

  • 修复了文本写入类型验证的问题

  • 支持对 XML 目录进行并行读取

  • 优化了 conv 函数的使用方式

  • 同时支持 Snowflake 和 net.snowflake.spark.snowflake 格式的读取和写入

  • 在创建表时模拟类型

  • 修复了通过数组访问嵌套结构体的问题

  • 修复了 Parquet 错误消息

  • 优化了 to_number 函数以减少查询大小

  • 修复了 UDF 缓存未考虑查询数据库变更的问题

  • 优化了 mask 函数

  • 在 Parquet 架构推理期间,将 PATTERN 传递给 NVS 回退读取器

  • Null 值与结构化类型的类型强制转换

新功能

  • 引入了 DIRECTED 联接提示

  • 集成了 XML inferSchema

1.18.0(2026 年 3 月 19 日)

Snowpark Connect for Spark

错误修复

  • 添加了缺失的 JDBC 类型映射

  • 支持在 Parquet 中使用用户自定义架构

  • 对 JSON 中无效的 UTF-8 字符进行优雅处理

  • 仅在实际使用时才解析 LCA 列

  • 优化了 get_json_object 的查询生成

  • 移除了 SQL 查询中的分号

  • processInBulk=True 设为 JSON 读取的默认方式,并修复了 NullType 的架构推断问题

  • 修复了暂存区读取不正确的问题

  • 在 UDF 注册中添加了非检查选项

  • 收紧了错误消息的长度限制

  • 允许用户提供的架构中存在缺失字段

  • JSON 和 CSV 压缩推理

  • 修复了 coalesce(1) 创建单个文件的问题

新功能

  • 添加了 execute_jar 方法以启动 Java/Scala 工作负载

Snowpark Submit

错误修复

  • 修复了在使用 --wait-for-completion 标志时吞掉错误的问题

1.17.0(2026 年 3 月 13 日)

Snowpark Connect for Spark

错误修复

  • JSON 和 CSV 压缩推理。

  • 修复 coalesce 创建单个文件的问题。

  • 重构 JSON 读取逻辑,使用 COPY INTO 进行单文件读取,并添加 VariantType 架构推断。

  • 允许在无显式架构的情况下加载 JSON。

  • 修复 JSON 中的 multi_line

  • 修复 JSON 的架构推断,避免扫描整个文件。

  • 正确处理向时间戳 ltz 的类型转换。

  • 限制返回的哈希值范围。

  • 修复使用 partitionBy 进行 repartition 的问题。

  • 修复以在 config.toml 中使用 [connections.spark-connect] 节标题。

  • 将 Java date/timestamp 格式的令牌转换为 Snowflake 等效格式,用于 CSV 读取。

  • pivot 函数计算架构。

  • 修复在带别名的横向连接中的 UDTFs 问题。

  • 对齐 SQL SET 命令的结果。

  • 修复 CEILFLOOR 函数的返回类型。

  • 改进 unbase64 v2 中的查询生成。

  • 修复 CSV 中部分选项到 Snowflake 的映射问题。

  • 修复 POJO 的序列化。

  • 改进 CSV 标头错误消息。

  • 改进读取 Parquet 时使用 try_cast 进行的 mapType 检测逻辑。

新功能

  • 支持 reduceGroups API。

  • 支持在 init_spark_session 内部指定连接名称。

  • 添加配置参数,以便为 unbase64 使用 UDF。

1.16.0(2026 年 3 月 12 日)

Snowpark Connect for Spark

错误修复

  • 优化函数 unbase64 中的 SQL 生成。

  • 修复 from_json 回归

  • 修复跨越多个 BZ2 压缩块边界的记录问题

  • 修复未解析属性中的可空性映射问题

  • 使用任意连接初始化 spark-connect 会话,而不仅仅是名为 spark-connect 的连接

  • 添加 XML 选项验证

  • 当 CSV ESCAPE 选项与引号字符匹配时将其丢弃,以防止编译错误

  • 修复 productEncoder 中命名元组的错误转换问题

  • 验证 CSV 和 JSON 不支持 mergeSchema

  • 修复 Parquet 复杂类型往返(写入 + 读取)

  • 修复 pivot/unpivot 的架构

  • 修复 MODPMOD 函数的返回类型

  • 修复带有前导空行的文件的 CSV 表头提取问题。

  • 正确测试时区,并将基于字符串的日期/时间序列化替换为基于轮次的序列化

  • 更新 Windows 的 Java 版本检查

  • 展平嵌套的 withColumn 调用

  • 更改加法/减法操作中的 Literal _IntegralType 逻辑

  • 返回 COUNT 函数的 LongType

  • 读取 JSON:test compression = bz2/bzip2/none

  • 提高 to_varchar/to_char 的性能

  • 在 I/O 测试中进行更好的比较

  • 默认将 multi_line 设置为 False,用于复制 JSON

Snowpark Submit

错误修复

  • 在未指定计算池时抛出错误。

1.15.0(2026 年 3 月 6 日)

Snowpark Connect for Spark

错误修复

  • 调用 df.count() 时移除结果扫描

  • 确保在读取 JSON 时,架构推断仅在有限行数上运行

  • 修复间隔类型的 createDataFrame

  • 更改乘法和除法运算中 Literal _IntegralType 的逻辑

  • Set 操作进行类型加宽和强制转换

  • 修复 neo4j 多标签支持

  • 修改 JAR 元数据,使 Grype 无法检测到 Netty 漏洞

  • 返回 ANY_VALUE 函数的正确类型

  • 返回序列的扩展类型

  • 添加对配置 spark.sql.parquet.inferTimestampNTZ.enabled 的支持

  • _validate_schema_and_get_writer 中的列重命名/类型转换

  • 在指定了提取大小的分区查询时,JDBC 发生挂起

  • 当异常消息超过 HTTP 标头限制时,返回经过修剪的消息

  • 修正 BigDecimalmap_type_to_snowflake_type 的映射

  • 修复字面量小数的精度和小数位数

  • 改进随机字符串生成

  • 使 BZ2 压缩的 JSON 加载忽略损坏的记录

新功能

  • 在 Scala UDFs 中使用配置中的暂存文件

  • 在读取 JSON 时使用宽松的 TRY_CAST 模式

  • 使服务器线程数可配置

Snowpark Submit

错误修复

  • init_spark_session() 重新添加到测试中

  • 更新 snowpark-submit 命令行输出,以明确需要 snowflake-connection-name

1.14.0(2026 年 2 月 19 日)

Snowpark Connect for Spark

错误修复

  • 运行时缓存表类型 saveAsTable

  • 优化 coalesce 的子字符串字面量输入和类型转换

  • 处理 avg/mean 中的十进制溢出并修复十进制类型强制转换

  • Iceberg – 覆盖时保留授权

  • 标准化 SQL 直通模式

  • 针对字面量时区优化 from_utc_timestamp/to_utc_timestamp

  • 处理结构化类型中的 JSON null 值以匹配 Spark 语义

  • 从 SQL 创建表时模拟整型

  • 修复 Scala UDFs 中映射嵌套行的边缘情况

  • 修复 Parquet 处理复杂结构化数据类型读写的问题

  • 支持在保存 Parquet 文件时使用 ignore 参数

  • 添加对工件存储库的支持

  • 修复 Scala UDxF 中的数组可空性

  • 修复适用于 (-1, 0) 范围内的实参的 log1p

  • 修复聚合上下文中的 first_valuelast_value

  • 修复 Scala 客户端的 DayTimeIntervalType 读取问题

新功能

  • 在 Scala UDFs 中正确处理时区

  • 无需任何配置即可支持 Java 11 和 17

Snowpark Submit 更新

新功能

  • 支持适用于 Python 3.9 的 snowpark-submit

  • 增强 init_spark_session 以使其可用于 snowpark-submit 工作流

1.13.0(2026 年 2 月 13 日)

Snowpark Connect for Spark

错误修复

  • 已修复 split 函数问题

  • 将 snowflake-snowpark-python 依赖项降级到版本 1.44

  • 已修复 Neo4j 方言匹配以改进 SQL 翻译

  • 修复了执行响应中返回的操作 ID 以保持一致

  • 修复了 TCP 通道连接的 gRPC 元数据处理

新功能

  • 添加了对 mapPartitions 操作中 partition_hint 的支持

  • 为具有用户定义架构的场景添加了 XML 读取器支持

1.11.0(2026 年 1 月 28 日)

Snowpark Connect for Spark

错误修复

  • 在执行各种 DataFrame 运算符后保留隐藏列

  • 修复 scala udf 输入类型的问题(bytebinaryscala.math.BigDecimal

其他更新

  • snowpark-submit 用户定义的实参添加到注释

1.10.0(2026 年 1 月 22 日)

Snowpark Connect for Spark

错误修复

  • 修复会话配置的配置取消设置错误。

  • 使用 copy into 并行加载 CSV 文件。

  • 使用外部联接修复 DataFrames 写入。

  • 在 Scala UDFs 中处理 null 值。

  • 优化 CTE 查询生成并进行参数保护。

  • 避免对 DATEDIFF 的实参进行类型转换。

  • 修复了追加分区文件和读取 null 分区的问题。

  • 使用 SQL 将 10 进制和 16 进制之间的转换性能提高了 10 倍。

新功能

  • 仅覆盖 Parquet 文件的已修改分区。

其他更新

  • 更新了逻辑以检测 Snowpark Connect for Spark 是否在 XP 上运行。

  • 支持在 Snowflake 中写入具有变体数据类型的表。

  • 移除不必要的信息日志。

  • 将 Java 测试从 Scala 测试作业中移至单独的作业。

  • 更新 gcsfs 的依赖项版本。

Snowpark Submit

无。

1.9.0(2026 年 1 月 14 日)

Snowpark Connect for Spark

错误修复

  • 修复 Scala 元组序列化问题。

  • 修复加载大型 JSON 文件时的问题。

  • 针对客户问题实施小修复。

  • 针对结构体比较实施修复。

  • 添加对 0 列 DataFrames 的处理。

  • 正确的文件上传路径。

  • 修复 Upload_files_if_needed 无法并行运行的问题。

  • 改进未在 proto 中定义 UDF 输入类型时的输入类型推理。

  • 修复 NA 边缘情况。

新功能

  • 支持读取单个 JSON BZ2 文件。

  • 在服务器端 Snowpark Connect for Spark 支持 Scala UDFs。

  • 实现字符串和 daytime 之间的类型转换。

  • group_map 中添加对 Scala UDFs 的支持。

Snowpark Submit

错误修复

  • 减少生成的工作负载名称。

1.8.0(2026 年 1 月 7 日)

Snowpark Connect for Spark

错误修复

  • 针对 Windows 修复了 JAVA_HOME 处理问题。

新功能

  • 通过 JDBC 支持 neo4j 数据源。

Snowpark Submit

无。