Spark 发布 3.4.2

Spark 3.4.2 是一个维护版本,包含安全性和正确性修复。此版本基于 Spark 的 branch-3.4 维护分支。我们强烈建议所有 3.4 用户升级到此稳定版本。

显著变化

  • [SPARK-42784]:当合并目录中的子目录数量小于配置时,仍应创建子目录
  • [SPARK-43203]:修复会话目录中 DROP TABLE 的行为
  • [SPARK-43393]:解决序列表达式溢出错误
  • [SPARK-44040]:修复当 AggregateExec 节点位于 QueryStageExec 之上时计算统计信息的问题
  • [SPARK-44079]:修复在 PERMISSIVE 模式下解析损坏记录的数组为结构体时出现 ArrayIndexOutOfBoundsException 的问题
  • [SPARK-44134]:修复在 spark-defaults.conf 中设置资源(GPU/FPGA)时将其设置为 0 的问题
  • [SPARK-44136]:修复 StateManager 可能会在 FlatMapGroupsWithStateExec 中在 executor 而不是 driver 中实例化的问题
  • [SPARK-44142]:在将 Python 类型转换为 Spark 类型的工具中将 type 替换为 tpe
  • [SPARK-44180]:DistributionAndOrderingUtils 应该应用 ResolveTimeZone
  • [SPARK-44206]:DataSet.selectExpr 作用域 Session.active
  • [SPARK-44215]:如果块数为 0,则服务器应抛出 RuntimeException
  • [SPARK-44241]:错误地将 io.connectionTimeout/connectionCreationTimeout 设置为零或负数将导致执行器不断创建/销毁
  • [SPARK-44251]:在完全外部 USING 连接中,正确设置合并连接键的可空性
  • [SPARK-44313]:修复当模式中存在 char/varchar 列时生成列表达式的验证问题
  • [SPARK-44391]:检查 InvokeLike 中的参数类型数量
  • [SPARK-44464]:修复 applyInPandasWithStatePythonRunner 以输出第一列值为 Null 的行
  • [SPARK-44479]:修复从空结构体类型进行 protobuf 转换的问题
  • [SPARK-44547]:对缓存的 RDD 迁移忽略回退存储
  • [SPARK-44581]:修复 ShutdownHookManager 从 ApplicationMaster 的 SecurityManager 获取错误 UGI 的错误
  • [SPARK-44588]:修复迁移的 shuffle 块的双重加密问题
  • [SPARK-44630]:回滚 “[SPARK-43043] 提高 MapOutputTracker.updateMapOutput 的性能”
  • [SPARK-44634]:Encoders.bean 不再支持带有类型参数的嵌套 bean
  • [SPARK-44641]:在某些 SPJ 未触发的场景中结果不正确
  • [SPARK-44653]:非平凡的 DataFrame 联合不应破坏缓存
  • [SPARK-44657]:修复 ArrowBatchWithSchemaIterator 中不正确的限制处理以及 CONNECT_GRPC_ARROW_MAX_BATCH_SIZE 配置解析问题
  • [SPARK-44805]:getBytes/getShorts/getInts/等方法应适用于带有字典的列向量
  • [SPARK-44840]:将 array_insert() 对于负索引改为 1-based
  • [SPARK-44846]:在 RemoveRedundantAggregates 中将较低的冗余 Aggregate 转换为 Project
  • [SPARK-44854]:Python timedelta 到 DayTimeIntervalType 边界情况错误
  • [SPARK-44857]:修复 Spark Worker LogPage UI 按钮中 getBaseURI 错误
  • [SPARK-44859]:修复结构化流文档中不正确的属性名称
  • [SPARK-44871]:修复 percentile_disc 行为
  • [SPARK-44910]:Encoders.bean 不支持带有泛型类型参数的超类
  • [SPARK-44920]:在 TransportClientFactory.createClient() 中使用 await() 而不是 awaitUninterruptibly()
  • [SPARK-44925]:K8s 默认服务令牌文件不应具体化为令牌
  • [SPARK-44935]:修复 Docker 镜像中 RELEASE 文件(如果存在)的信息不正确的问题
  • [SPARK-44937]:在 TransportClient.close 中将连接标记为 timedOut
  • [SPARK-44940]:当启用 “spark.sql.json.enablePartialResults” 时提高 JSON 解析性能
  • [SPARK-44973]:修复 conv() 中的 ArrayIndexOutOfBoundsException
  • [SPARK-44990]:降低获取 spark.sql.legacy.nullValueWrittenAsQuotedEmptyStringCsv 的频率
  • [SPARK-45054]:HiveExternalCatalog.listPartitions 应恢复分区统计信息
  • [SPARK-45057]:当 keepReadLock 为 false 时,避免获取读锁
  • [SPARK-45071]:优化处理多列数据时 BinaryArithmetic#dataType 的处理速度
  • [SPARK-45075]:修复使用无效默认值更改表时不会报错的问题
  • [SPARK-45078]:修复 array_insert ImplicitCastInputTypes 不起作用的问题
  • [SPARK-45079]:修复 percentile_approx()NULL 精度方面的内部错误
  • [SPARK-45081]:Encoders.bean 不再适用于只读属性
  • [SPARK-45100]:修复 reflect()NULL 类和方法方面的内部错误
  • [SPARK-45109]:修复 Connect 中的日志功能
  • [SPARK-45187]:修复 WorkerPage 以对 logPage url 使用相同的模式
  • [SPARK-45227]:修复 CoarseGrainedExecutorBackend 中一个微妙的线程安全问题
  • [SPARK-45282]:AQE 中与 InMemoryTableScanExec 相关的正确性问题
  • [SPARK-45389]:更正获取分区元数据时的 MetaException 匹配规则
  • [SPARK-45430]:修复 FramelessOffsetWindowFunction 在 IGNORE NULLS 且 offset > rowCount 时的问题
  • [SPARK-45433]:修复当时间戳不匹配指定 timestampFormat 时 CSV/JSON 模式推断的问题
  • [SPARK-45473]:修复 RoundBase 的错误消息不正确的问题
  • [SPARK-45508]:添加 “–add-opens=java.base/jdk.internal.ref=ALL-UNNAMED” 以便 Platform 可以在 Java 9+ 上访问 Cleaner
  • [SPARK-45592]:AQE 中与 InMemoryTableScanExec 相关的正确性问题
  • [SPARK-45604]:在 Parquet 向量化读取器中添加 INT64 -> DateTime 转换的 LogicalType 检查
  • [SPARK-45652]:SPJ:处理动态过滤后的空输入分区
  • [SPARK-45670]:SparkSubmit 在 K8s 上部署时不支持 --total-executor-cores
  • [SPARK-45678]:在 tryOrFetchFailedException 下覆盖 BufferReleasingInputStream.available/reset
  • [SPARK-45749]:修复 Spark History Server 正确排序 Duration 列的问题
  • [SPARK-45786]:修复不准确的 Decimal 乘法和除法结果
  • [SPARK-45814]:使 ArrowConverters.createEmptyArrowBatch 调用 close() 以避免内存泄漏
  • [SPARK-45882]:BroadcastHashJoinExec 传播分区应遵循 CoalescedHashPartitioning
  • [SPARK-45896]:使用正确的预期类型构造 ValidateExternalType
  • [SPARK-45920]:按序号分组应该是幂等的
  • [SPARK-46006]:YarnAllocator 在 YarnSchedulerBackend 调用 stop 后未能清理 targetNumExecutorsPerResourceProfileId
  • [SPARK-46012]:如果应用程序状态文件缺失,EventLogFileReader 不应读取滚动日志
  • [SPARK-46062]:同步 CTE 定义和引用之间的 isStreaming 标志
  • [SPARK-46064]:将 EliminateEventTimeWatermark 移至分析器,并更改为仅对已解析的子节点生效

依赖项变更

尽管这是一个维护版本,我们在此版本中仍升级了一些依赖项,它们是:

您可以查阅 JIRA 以获取详细更改

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


Spark 新闻存档

最新新闻

存档