PySpark 概述#
日期:2026 年 1 月 2 日 版本:4.1.1
实用链接:在线 Notebook | GitHub | 问题跟踪 | 示例 | 社区 | Stack Overflow | 开发邮件列表 | 用户邮件列表
PySpark 是 Apache Spark 的 Python API。它使您能够在分布式环境中使用 Python 执行大规模的实时数据处理。它还提供了一个 PySpark shell,用于交互式地分析数据。
PySpark 结合了 Python 的易学易用性与 Apache Spark 的强大功能,使熟悉 Python 的用户能够处理和分析任意规模的数据。
PySpark 支持 Spark 的所有功能,如 Spark SQL、DataFrame、结构化流(Structured Streaming)、机器学习(MLlib)、流水线(Pipelines)和 Spark Core。
|
|
|
|
|
|
Python Spark Connect 客户端
Spark Connect 是 Apache Spark 中的一种客户端-服务器架构,它允许任何应用程序远程连接到 Spark 集群。PySpark 提供了 Spark Connect 服务器的客户端,使得 Spark 可以作为一种服务来使用。
Spark SQL 和 DataFrame
Spark SQL 是 Apache Spark 用于处理结构化数据的模块。它允许您将 SQL 查询与 Spark 程序无缝结合。利用 PySpark DataFrame,您可以使用 Python 和 SQL 高效地读取、写入、转换和分析数据。无论您使用 Python 还是 SQL,底层都会使用相同的执行引擎,因此您始终能充分发挥 Spark 的强大性能。
Spark 上的 Pandas API
Spark 上的 Pandas API 允许您通过跨多个节点进行分布式运行,将 pandas 工作负载扩展到任意规模。如果您已经熟悉 pandas 并希望利用 Spark 进行大数据处理,Spark 上的 pandas API 可以让您立即提高工作效率,并在无需修改代码的情况下迁移应用程序。您可以拥有一套既适用于 pandas(测试、较小数据集)又适用于 Spark(生产环境、分布式数据集)的代码库,并且可以轻松且无开销地在 pandas API 和 Spark 上的 Pandas API 之间切换。
Spark 上的 Pandas API 旨在简化从 pandas 到 Spark 的过渡,但如果您是 Spark 的新手或正在决定使用哪种 API,我们建议使用 PySpark(请参阅 Spark SQL 和 DataFrames)。
Structured Streaming
结构化流(Structured Streaming)是一个基于 Spark SQL 引擎构建的可扩展且容错的流处理引擎。您可以像编写静态数据的批处理计算一样编写流计算。Spark SQL 引擎将负责增量且持续地运行它,并在流数据不断到达时更新最终结果。
机器学习 (MLlib)
MLlib 构建于 Spark 之上,是一个可扩展的机器学习库,提供了一套统一的高级 API,帮助用户创建和调整实用的机器学习流水线。
声明式流水线 (Declarative Pipelines)
Spark 声明式流水线 (SDP) 是一个用于在 Spark 上构建可靠、可维护和可测试数据流水线的声明式框架。SDP 通过允许您专注于应用于数据的转换,而不是流水线执行的细节,从而简化了 ETL 开发。
Spark Core 和 RDD
Spark Core 是 Spark 平台底层的通用执行引擎,所有其他功能都构建在其之上。它提供了 RDD(弹性分布式数据集)和内存计算能力。
请注意,RDD API 属于低级 API,使用起来较为困难,且无法享受到 Spark 自动查询优化功能带来的好处。我们建议使用 DataFrame(请参阅上文 Spark SQL 和 DataFrames)而非 RDD,因为它能让您更轻松地表达意图,并让 Spark 自动为您构建最高效的查询。
Spark Streaming (旧版)
Spark Streaming 是核心 Spark API 的一个扩展,支持对实时数据流进行可扩展、高吞吐、容错的流处理。
请注意,Spark Streaming 是 Spark 上一代的流处理引擎。它是一个旧版项目,不再更新。Spark 中有一个更新、更易于使用的流处理引擎,称为 结构化流 (Structured Streaming),您应该在流处理应用程序和流水线中使用它。





