【Spark 核心内参】2025.9:预览版常态化与数据类型的重构
航向追踪
🚀 预览版双响炮:Spark 4.1.0-preview1 & preview2
关键更新:
- 发布节奏: 尽管上月经历了跳票,本月社区一口气发布了两个预览版。
- 意义 : 这标志着"月度预览版"机制正式跑通。开发者现在可以几乎实时地测试
master分支上的新特性。
编者按:
从"年更"到"月更"(虽然只是预览版),Spark 的迭代速度正在肉眼可见地加快。对于依赖 Spark 最新特性的用户(如 AI/ML 场景),这是一个巨大的利好。
稳扎稳打:Spark 4.0.1 & 3.5.7
关键更新:
- Spark 4.0.1: 4.0 系列的首个维护版本,包含大量 Bug 修复。
- Spark 3.5.7: 3.5 系列的第七个维护版本,持续守护存量用户。
编者按:
新老版本双线并行,既有激进的预览,又有稳健的维护,展现了成熟社区的治理能力。
前线研讨
伤筋动骨的重构:Data Type Framework (Data Type framework)
- 综合指数: ⭐⭐⭐⭐⭐
问题现象:
Max Gekk 指出,目前 Spark 处理数据类型(DataType)的逻辑散落在代码库的 100 多个角落。每增加一个新类型(如 TIMESTAMP_NTZ),都需要满世界修改模式匹配代码,耗时动辄一年以上。
预期和目标:
引入 DataTypeOps 接口,将类型相关的操作(格式化、哈希、转换等)封装在类型内部。
编者按:
这是一个迟到但极其重要的重构。随着 SQL 标准的演进,Spark 需要支持越来越多的新类型(如 JSON, UUID, GEOMETRY 等)。如果还沿用老的硬编码方式,开发效率将无法忍受。这个重构将为 Spark 未来的可扩展性打下坚实基础。
GraphX 的归宿:移交 GraphFrames? (Does GraphX accepting patches?)
- 综合指数: ⭐⭐⭐
问题现象:
GraphX 虽然已标记为废弃,但仍有开发者提交高性能补丁(70倍性能提升!)。然而,废弃模块通常不再接受新特性。
讨论方向:
社区提议将 GraphX 的代码库整体迁移到 graphframes 项目中进行维护。
编者按:
"老兵不死,只是凋零"。GraphX 作为一代经典的图计算框架,虽然在架构上难以融入 Spark SQL 的新世界,但其算法价值依然巨大。通过"过继"给活跃的 GraphFrames,或许是它最好的归宿。
AI 时代的文档:Add llms.txt files (SPIP: Add llms.txt files to Spark Documentation)
- 综合指数: ⭐⭐⭐
问题现象:
越来越多的开发者使用 AI 辅助编程(Copilot, ChatGPT),但 LLM 经常幻觉或引用过时的 API。
预期和目标:
在官方文档中增加 llms.txt,这是一个专门给 AI 看的"站点地图"或"知识索引"。
编者按:
这是一个非常有前瞻性的提案。文档不仅仅是给人看的,也是给 AI 看的。通过主动向 AI 喂食高质量的官方索引,可以显著提高 AI 生成代码的准确率,间接降低用户的上手门槛。
方案思辨
Spark Connect 的最后一块拼图:JDBC Driver (JDBC Driver for Spark Connect)
核心动机:
Spark Connect 虽然有了 Python, Scala, Go, Rust 客户端,但大量现存的 BI 工具(Tableau, PowerBI, DBeaver)只认 JDBC。目前它们只能通过 Thrift Server 连接 Spark,无法享受 Connect 的架构优势。
关键设计:
开发一个基于 Spark Connect 协议的 JDBC 驱动。
影响价值:
这将打通 Spark Connect 与传统 SQL 生态的最后一公里,让 BI 用户也能无缝迁移到新架构。
生态拓扑
- AI Friendly :
llms.txt的引入表明开源社区正在主动适应 AI 时代。 - GraphFrames: 随着 GraphX 的潜在移入,GraphFrames 或将成为 Spark 图计算的唯一事实标准。