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 类型的实用程序中,用 tpe 替换 type
  • [SPARK-44180]: DistributionAndOrderingUtils 应该应用 ResolveTimeZone
  • [SPARK-44206]: DataSet.selectExpr 作用域 Session.active
  • [SPARK-44215]: 如果 num chunks 为 0,则服务器应抛出 RuntimeException
  • [SPARK-44241]: 错误地将 io.connectionTimeout/connectionCreationTimeout 设置为零或负数会导致执行程序不断构建/销毁
  • [SPARK-44251]: 在完全外部 USING 连接中,正确设置合并连接键上的可为空性
  • [SPARK-44313]: 修复当 schema 中存在 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 unions 不应破坏缓存
  • [SPARK-44657]: 修复 ArrowBatchWithSchemaIterator 中不正确的限制处理以及 CONNECT_GRPC_ARROW_MAX_BATCH_SIZE 的配置解析
  • [SPARK-44805]: getBytes/getShorts/getInts/etc. 应该在具有字典的列向量中工作
  • [SPARK-44840]: 使 array_insert() 对于负索引基于 1
  • [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]: 修复当 IGNORE NULLS 且 offset > rowCount 时 FramelessOffsetWindowFunction 的问题
  • [SPARK-45433]: 修复当时间戳与指定 timestampFormat 不匹配时 CSV/JSON schema 推断的问题
  • [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 Vectorized Reader 上添加 INT64 -> DateTime 转换的 LogicalType 检查
  • [SPARK-45652]: SPJ:处理动态过滤后的空输入分区
  • [SPARK-45670]: 在 K8s 上部署时,SparkSubmit 不支持 --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]: group by ordinal 应该是幂等的
  • [SPARK-46006]: YarnAllocator 在 YarnSchedulerBackend 调用 stop 后,会遗漏清除 targetNumExecutorsPerResourceProfileId
  • [SPARK-46012]: 如果缺少应用程序状态文件,EventLogFileReader 不应读取滚动日志
  • [SPARK-46062]: 同步 CTE 定义和引用之间的 isStreaming 标志
  • [SPARK-46064]: 将 EliminateEventTimeWatermark 移至分析器,并更改为仅对已解析的子级生效

依赖项更改

虽然这是一个维护版本,但我们仍然升级了此版本中的一些依赖项,它们是

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

我们要感谢所有社区成员为此版本的补丁做出贡献。


Spark 新闻存档

最新新闻

存档