Spark 2.4.8 版本发布

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

显著变化

  • [SPARK-21492]: 修复 SortMergeJoin 中的内存泄漏
  • [SPARK-25271]: 创建所有列为空的 parquet 表时抛出异常
  • [SPARK-26625]: spark.redaction.regex 应包含 oauthToken
  • [SPARK-26645]: CSV 推断模式错误推断出 decimal(9,-1)
  • [SPARK-27575]: Spark 覆盖 spark.yarn.dist.* 的现有值而不是合并值
  • [SPARK-27872]: Driver 和 Executor 使用不同的服务账户导致拉取 secret 失败
  • [SPARK-29574]: Spark 与用户提供的 Hadoop 在 Kubernetes 上不工作
  • [SPARK-30201]: HiveOutputWriter standardOI 应使用 ObjectInspectorCopyOption.DEFAULT
  • [SPARK-32635]: 当 pyspark.sql.functions.lit() 函数与 dataframe 缓存一起使用时,返回错误结果
  • [SPARK-32708]: 查询优化未能重用 DataSourceV2 的 exchange
  • [SPARK-32715]: 广播块片段可能导致内存泄漏
  • [SPARK-32738]: 线程安全端点可能因致命错误而挂起
  • [SPARK-32794]: 微批处理引擎在某些有状态查询 + 无数据批次 + V1 流式源的罕见边缘情况错误
  • [SPARK-32815]: 修复 LibSVM 数据源在文件路径包含 glob 元字符时加载错误
  • [SPARK-32836]: 修复 DataStreamReaderWriterSuite 以正确检查 writer 选项
  • [SPARK-32872]: BytesToBytesMap 在 MAX_CAPACITY 时超出增长阈值
  • [SPARK-32900]: 当输入中存在 NULL 且使用基数排序时,UnsafeExternalSorter.SpillableIterator 无法溢出。
  • [SPARK-32901]: UnsafeExternalSorter 在溢出时可能导致 SparkOutOfMemoryError 抛出
  • [SPARK-32908]: percentile_approx() 返回不正确的结果
  • [SPARK-32999]: TreeNode.nodeName 不应抛出畸形类名错误
  • [SPARK-33094]: ORC 格式未将 Hadoop 配置从 DS 选项传播到底层 HDFS 文件系统
  • [SPARK-33101]: LibSVM 格式未将 Hadoop 配置从 DS 选项传播到底层 HDFS 文件系统
  • [SPARK-33131]: 修复带有 having 子句的 grouping sets 无法解析限定列名的问题
  • [SPARK-33136]: 在 V2 写入命令解析期间,复杂类型的可空性处理损坏
  • [SPARK-33183]: 优化器规则 EliminateSorts 中的错误
  • [SPARK-33230]: FileOutputWriter 作业在同一秒启动时有重复的 JobID
  • [SPARK-33268]: 修复从/到 PythonUserDefinedType 进行数据转换的错误
  • [SPARK-33277]: Python/Pandas UDF 在堆外向量化读取器之后可能导致 executor 崩溃。
  • [SPARK-33292]: 使 Literal ArrayBasedMapData 字符串表示明确
  • [SPARK-33338]: 使用字面量映射的 GROUP BY 不应失败
  • [SPARK-33339]: Pyspark 应用程序可能因非异常而挂起
  • [SPARK-33372]: 修复 InSet bucket pruning
  • [SPARK-33472]: 在 EnsureRequirements 之前应用 RemoveRedundantSorts 时出现 IllegalArgumentException
  • [SPARK-33588]: SHOW TABLE EXTENDED 中的分区规范不遵守 spark.sql.caseSensitive
  • [SPARK-33593]: 向量读取器在处理二进制分区值时获取了不正确的数据
  • [SPARK-33726]: 重复的字段名在聚合期间导致错误答案
  • [SPARK-33733]: PullOutNondeterministic 应检查并收集确定性字段
  • [SPARK-33756]: BytesToBytesMap 的迭代器 hasNext 方法应该是幂等的。
  • [SPARK-34125]: 使 EventLoggingListener.codecMap 线程安全
  • [SPARK-34187]: 在检查偏移量验证时使用轮询期间获得的可用偏移量范围
  • [SPARK-34212]: 对于 parquet 表,在 hive 中更改 decimal 类型的精度和标度后,spark 读取不正确的值
  • [SPARK-34229]: Avro 应使用文件模式读取 decimal 值
  • [SPARK-34260]: 两次创建临时视图时出现 UnresolvedException
  • [SPARK-34273]: SparkContext 停止时不重新注册 BlockManager
  • [SPARK-34318]: Dataset.colRegex 应适用于包含换行符的列名和限定符
  • [SPARK-34327]: 在构建过程中省略内联密码。
  • [SPARK-34596]: NewInstance.doGenCode 不应抛出畸形类名错误
  • [SPARK-34607]: NewInstance.resolved 不应抛出畸形类名错误
  • [SPARK-34724]: 修复通过 getClass.getMethod 而非 getDeclaredMethod 进行解释执行的问题
  • [SPARK-34726]: 修复 collectToPython 超时问题
  • [SPARK-34776]: Catalyst 在某些结构操作上出错(找不到 gen_alias
  • [SPARK-34811]: 像 secret 和 token 一样遮蔽 fs.s3a.access.key
  • [SPARK-34855]: SparkContext - 避免使用本地 lazy val
  • [SPARK-34876]: 不可为空的聚合在相关子查询中可能返回 NULL
  • [SPARK-34909]: conv() 未正确将负输入转换为无符号数
  • [SPARK-34939]: 无法反序列化广播的 map 状态时抛出 fetch failure 异常
  • [SPARK-34963]: 嵌套列修剪未能从数组中提取不区分大小写的结构字段
  • [SPARK-35080]: 带有等价谓词的相关子查询可能返回错误结果
  • [SPARK-35278]: Invoke 应查找参数数量正确的方法
  • [SPARK-35288]: StaticInvoke 应查找没有精确参数类匹配的方法

依赖变更

已知问题

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

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


Spark 新闻存档