Apache Spark 4.2:让数据对AI开发者更友好
Apache Spark 4.2版本发布,重点转向AI原生数据平台,引入了度量视图、原生向量搜索、实时Python流处理、地理空间支持等特性,旨在简化AI开发者的特征工程、实时信号处理和嵌入工作流。
Apache Spark 4.2 已经发布,这不仅仅是一次例行更新。它清晰地表明,该项目背后的商业支持者现在将 Spark 视为 AI 原生数据平台的核心,而非通用的大数据工具。对于正在与特征管道、嵌入、实时信号和数据治理作斗争的 AI 开发者来说,此版本直击痛点。
Spark 最初设计于2009年,旨在改进 Hadoop MapReduce 用于大规模数据处理。但随着机器学习和交互式查询需求的出现,Spark 的弹性分布式数据集(RDD)和内存处理能力使其脱颖而出。多年来,Spark 一直是批处理分析和流处理管道的支柱,而 AI 功能大多是在边缘拼接的。
现在,4.2 版本使 Spark 全面拥抱 AI。新功能包括度量视图、原生向量搜索和实时 Python 流处理,使 Spark 成为统一处理传统任务和现代 AI 应用的引擎。度量视图作为 Spark SQL 中的一等语义层,允许工程师一次性定义度量作为目录对象,并在各处重用。对于 AI 开发者,这减少了计算特征和指标时的细微错误,并为基于 LLM 的系统提供了一致、可治理的数据基础。
对许多 AI 开发者而言,最引人注目的变化是 Spark 4.2 对向量相似性负载的原生支持。Spark 现在内置了向量距离和相似性函数,以及用于 top-K 相似性连接的 NEAREST BY 运算符。开发者可以在 Spark 中计算嵌入,将其与其他结构化数据一起存储,并运行相似性查询,而无需将数据移动到专用向量数据库。虽然它不会完全取代专门的向量数据库,但对于许多以数据湖仓为中心的工作负载,这大大降低了构建基于检索的 AI 系统的门槛。
另一个重要的增强是地理空间支持。Spark 4.2 引入了原生 GEOMETRY 和 GEOGRAPHY 类型,以及一组 ST_* 函数用于距离、包含和空间连接等操作。位置智能正越来越多地用于 AI 用例,从旅行商问题到位置感知推荐和欺诈检测。将地理空间作为一等列类型,AI 开发者可以将其视为其他数据一样处理,并使用已有的 Spark 工作流进行连接、聚合和模型输入。
在开发者体验方面,Spark 4.2 为 AI Python 程序员带来了显著提升。Arrow 优化执行现在是 PySpark 用户定义函数的默认路径,无需更改现有代码即可实现更快的列式处理。同时支持现代 pandas 并通过 Arrow C 数据接口实现与 Polars 和 DuckDB 等工具的零拷贝数据交换。对于 AI 开发者,这在笔记本驱动的工作流和混合栈中特别有吸引力。
Spark 4.2 还为 PySpark 带来了实时模式,使得毫秒级无状态流处理对 Python 开发者可用。这为构建高吞吐量、低延迟的特征管道打开了大门,允许开发者使用与模型开发相同的语言进行原型设计和部署。
在幕后,Spark 4.2 还加强了 AI 工作负载所依赖的数据工程基础。自动变更数据捕获(Auto CDC)和增强的 CHANGES 子句使得维护干净、增量式的数据视图更加容易,减少了手工编码的 MERGE 逻辑和临时 ETL 工作。对于 AI 开发者,尽管这些工作不引人注目,但却是必要的,因为模型会在底层数据管道脆弱时退化。
总的来说,Apache Spark 4.2 对 AI 程序员来说比以往任何时候都更有用。嵌入、地理空间数据、实时信号、语义指标和以 Python 为中心的工作流不再是二等公民,而是一等设计元素。