Spark 1.x 系列

Spark 1.0 (2014)
  • 核心特性:首个稳定版本,引入 RDD(弹性分布式数据集) 作为核心抽象。

  • 语言支持:支持 Scala、Java 和 Python API。

  • 生态系统:初步支持 Spark SQL(前身为 Shark)、Spark Streaming(微批处理)和 MLlib。

Spark 1.3 (2015)
  • DataFrame API:引入结构化数据处理的 DataFrame API(类似 Pandas),支持优化器 Catalyst 和 Tungsten 执行引擎。

Spark 1.6 (2016)
  • Dataset API:实验性引入 Dataset API,结合 RDD 的类型安全和 DataFrame 的性能优化。

  • 性能优化:Tungsten 引擎优化内存管理和代码生成。


Spark 2.x 系列

Spark 2.0 (2016)
  • 统一 API:合并 DataFrame 和 Dataset,形成结构化 API(Dataset[Row] = DataFrame)。

  • 结构化流处理:推出 Structured Streaming,基于 DataFrame 的统一批流处理模型。

  • 性能提升:Tungsten 引擎引入全阶段代码生成(Whole-Stage Codegen)。

  • 入口点:引入 SparkSession 替代 SparkContext 作为统一入口。

Spark 2.3 (2018)
  • Kubernetes 支持:原生支持 Kubernetes 集群资源调度。

  • 流处理增强:Structured Streaming 支持连续处理模式(毫秒级延迟)。

  • PySpark 优化:支持 Pandas UDF(向量化 UDF)。

Spark 2.4 (2018)
  • 生态系统集成:内置 Avro 数据源、Image 数据源(机器学习场景)。

  • 高阶函数:支持复杂数据类型(如数组)的 SQL 操作。

  • 屏障执行模式:实验性支持分布式训练(如与深度学习框架集成)。


Spark 3.x 系列

Spark 3.0 (2020)
  • 自适应查询优化(AQE):动态调整执行计划(如合并 Shuffle 分区、动态切换 Join 策略)。

  • 动态分区裁剪:根据运行时统计信息跳过不必要的数据读取。

  • 加速器支持:实验性支持 GPU 调度(用于机器学习任务)。

  • 兼容性:弃用 Python 2 和 Hadoop 2.6,全面支持 Scala 2.12。

Spark 3.1 (2021)
  • 物化视图:支持 SQL 物化视图加速查询。

  • Hadoop 3 支持:全面兼容 Hadoop 3.2+。

  • Kubernetes 改进:支持客户端模式和服务账户认证。

Spark 3.2 (2021)
  • Delta Lake 深度集成:支持作为 Metastore 和数据源。

  • 流处理增强:支持多 Watermark 策略(多流关联场景)。

  • 性能优化:AQE 新增动态分区合并和倾斜 Join 优化。

Spark 3.3 (2022)
  • Error Classes:标准化的错误分类与消息格式。

  • Pandas API 支持:实验性引入 pyspark.pandas,提供类似 Pandas 的 API。

  • 分布式 GPU 调度:改进 GPU 资源管理(需与 K8s 配合)。


版本差异对比

特性 Spark 1.x Spark 2.x Spark 3.x
核心 API RDD 为主 结构化 API(DataFrame/Dataset) 结构化 API + 自适应优化
流处理 DStream(微批处理) Structured Streaming Structured Streaming 增强
执行引擎 基础 Tungsten Tungsten 优化(Codegen) AQE + 动态优化
生态集成 Hadoop/YARN 为主 支持 Kubernetes 深度集成 Delta Lake、GPU 等
语言支持 Scala/Java/Python 增强 Python/R 全面优化 Python(Pandas API)

升级建议

  • 迁移到 Spark 3.x:推荐使用 Spark 3.3+,尤其需要利用 AQE、GPU 加速或 Delta Lake 集成。

  • 流处理场景:优先使用 Structured Streaming(Spark 2.x+),避免旧版 DStream。

  • 性能敏感场景:启用 AQE(Spark 3.0+)和动态分区裁剪。

通过版本迭代,Spark 从以 RDD 为中心的计算引擎演变为以结构化 API 和自适应优化为核心的统一分析平台,同时深度集成云原生和 AI 生态。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐