Spark 发布 3.2.3

Spark 3.2.3 是一个包含稳定性修复的维护版本。此版本基于 Spark 的 branch-3.2 维护分支。我们强烈建议所有 3.2 用户升级到此稳定版本。

显著变化

  • [SPARK-38697]: 扩展 SparkSessionExtensions 以将规则注入 AQE Optimizer
  • [SPARK-39200]: 从备用存储系统获取块时流损坏异常
  • [SPARK-8731]: Beeline 在后台启动时使用 -e 选项不起作用
  • [SPARK-32380]: 数据在 hbase 中时 sparksql 无法访问 hive 表
  • [SPARK-35542]: 使用参数 splitsArray, inputCols 和 outputCols 为多列创建的 Bucketizer 在保存后无法加载。
  • [SPARK-39184]: 在某些时区中,某些日期/时间序列的 ArrayIndexOutOfBoundsException
  • [SPARK-39647]: 即使 NodeManager 未重新启动,块推送也因 java.lang.IllegalArgumentException: Active local dirs list has not been updated by any executor registration 而失败
  • [SPARK-39775]: AVRO-2035 导致的回归
  • [SPARK-39833]: 当 spark.sql.parquet.filterPushdown 为 true 时,过滤后的 parquet 数据帧 count() 和 show() 产生不一致的结果
  • [SPARK-39835]: 修复 EliminateSorts 删除局部排序下的全局排序
  • [SPARK-39839]: 处理 UnsafeRow 结构完整性检查中非零 offsetAndSize 的特殊空变长 Decimal
  • [SPARK-39847]: 任务线程在 RocksDBLoader.loadLibrary() 中被中断时相关的竞态条件
  • [SPARK-39867]: 全局限制不应继承 OrderPreservingUnaryNode
  • [SPARK-39887]: 表达式转换错误
  • [SPARK-39900]: 使用 'not' 运算符查询由 'binaryFile' 格式生成的数据帧时出现问题
  • [SPARK-39932]: WindowExec 应清除最终分区缓冲区
  • [SPARK-39952]: SaveIntoDataSourceCommand 应该重新缓存结果关系
  • [SPARK-39962]: 针对 pandas 聚合 UDF 的全局聚合不考虑列顺序
  • [SPARK-39965]: 当驱动程序不拥有 PVC 时,跳过 PVC 清理
  • [SPARK-39972]: 在 branch-3.2 和 branch-3.1 中恢复 SPARK-39962 的测试用例
  • [SPARK-40002]: 使用 ntile 函数通过窗口不正确地向下推送限制
  • [SPARK-40065]: 如果配置文件不是默认值,则不挂载 Executor ConfigMap
  • [SPARK-40079]: 为空输入情况添加 Imputer inputCols 验证
  • [SPARK-40089]: 对于某些接近最大值的值,至少 Decimal(20, 2) 的排序失败。
  • [SPARK-40117]: 在 DataFrameWriterV2.overwrite 中将条件转换为 java
  • [SPARK-40121]: 初始化用于 Python UDF 的投影
  • [SPARK-40124]: 更新 TPCDS v1.4 q32 以进行 Plan Stability 测试
  • [SPARK-40149]: 外部连接后的星形扩展不对称地包含连接键
  • [SPARK-40169]: 修复数据源 V1 中 Parquet 列索引和谓词下推的问题
  • [SPARK-40212]: SparkSQL castPartValue 未正确处理 byte & short
  • [SPARK-40218]: GROUPING SETS 应保留分组列
  • [SPARK-40270]: 使 compute.max_rows 在 DataFrame.style 中设置为 None 也能正常工作
  • [SPARK-40280]: 对于某些有效文件,为 ints 和 longs 创建 parquet 谓词下推失败
  • [SPARK-40315]: ArrayBasedMapData 在相等对象上的 hashCode() 计算不确定
  • [SPARK-40407]: DataFrame 的重新分区在某些特殊情况下可能导致严重的数据倾斜
  • [SPARK-40459]: recoverDiskStore 不应因现有重新计算的文件而停止
  • [SPARK-40470]: 使用 GetMapValue 和 GetArrayStructFields 时 arrays_zip 输出意外的别名列名
  • [SPARK-40493]: 恢复 “[SPARK-33861][SQL] 简化谓词中的条件”
  • [SPARK-40562]: 添加 spark.sql.legacy.groupingIdWithAppendedUserGroupBy
  • [SPARK-40583]: “与云基础设施集成”中的文档错误
  • [SPARK-40588]: 开启分区写入和 AQE 时的排序问题
  • [SPARK-40612]: 在 Kubernetes 上,长时间运行的 Spark 应用使用无效的主体续签委托令牌
  • [SPARK-40636]: 修复 BlockManagerDecommissioner 中错误的剩余 shuffle 日志
  • [SPARK-40660]: 切换到 XORShiftRandom 以分发元素
  • [SPARK-40829]: CREATE TABLE LIKE view 中的 STORED AS serde 不起作用
  • [SPARK-40851]: 使用最新的 Java 8/11/17 时 TimestampFormatter 行为改变
  • [SPARK-40869]: KubernetesConf.getResourceNamePrefix 创建无效的名称前缀
  • [SPARK-40874]: 修复启用加密时 Python UDF 中的广播
  • [SPARK-40902]: 在测试中快速向 mesos 调度器提交驱动程序导致驱动程序被丢弃
  • [SPARK-40963]: ExtractGenerator 在新 Project 中设置了不正确的可空性
  • [SPARK-41035]: 当字面量在不同聚合中重用时,结果不正确或 NPE
  • [SPARK-41091]: 修复 branch-3.2 的 Docker 发布工具
  • [SPARK-41188]: 默认将 executorEnv OMP_NUM_THREADS 设置为 spark.task.cpus 用于 spark executor JVM 进程
  • [SPARK-38034]: 优化时间复杂度并扩展 TransposeWindow 的适用情况
  • [SPARK-39831]: devtools_2.4.4 发布后 R 依赖项安装开始失败
  • [SPARK-39879]: 减少 BroadcastJoinSuite* 和 HiveSparkSubmitSuite 中的 local-cluster 内存配置
  • [SPARK-40022]: 没有 Python3 环境时不应 ABORTED YarnClusterSuite
  • [SPARK-40241]: 更正 GenericUDTF 的链接
  • [SPARK-40490]: YarnShuffleIntegrationSuite 在 SPARK-17321 之后不再验证 registeredExecFile 重新加载
  • [SPARK-40574]: 为 DROP TABLE 文档添加 PURGE
  • [SPARK-40172]: 暂时禁用 ImageFileFormatSuite 中不稳定的测试用例
  • [SPARK-40461]: 为 Python linter 设置 pyzmq 24.0.0 的上限
  • [SPARK-40213]: Latin-1 Supplement 字符的 ASCII 值不正确
  • [SPARK-40292]: arrays_zip 输出意外的别名列名
  • [SPARK-40043]: 记录 DataStreamWriter.toTable 和 DataStreamReader.table
  • [SPARK-40983]: 移除 Parquet 压缩编解码器中提及 zstd 的 Hadoop 要求

依赖项变更

作为一个维护版本,我们在此版本中仍然升级了一些依赖项,它们是:

您可以查阅 JIRA 以了解详细变更

我们感谢所有为本次发布贡献补丁的社区成员。


Spark 新闻档案