PySpark 概述¶
日期:2025 年 2 月 23 日 版本:3.5.5
实用链接: 在线笔记本 | GitHub | 问题 | 示例 | 社区
PySpark 是 Apache Spark 的 Python API。 它使您能够使用 Python 在分布式环境中执行实时、大规模的数据处理。 它还提供了一个 PySpark shell,用于交互式地分析您的数据。
PySpark 将 Python 的易学性和易用性与 Apache Spark 的强大功能相结合,使任何熟悉 Python 的人都能处理和分析任何规模的数据。
PySpark 支持 Spark 的所有功能,例如 Spark SQL、DataFrames、Structured Streaming、Machine Learning (MLlib) 和 Spark Core。
![]() |
![]() |
![]() |
![]() |
![]() |
Spark SQL 和 DataFrames
Spark SQL 是 Apache Spark 用于处理结构化数据的模块。 它允许您将 SQL 查询与 Spark 程序无缝混合。 使用 PySpark DataFrames,您可以使用 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)。
结构化流
结构化流是一个可扩展且容错的流处理引擎,构建在 Spark SQL 引擎之上。 您可以用与表达静态数据上的批量计算相同的方式表达您的流式计算。 Spark SQL 引擎将负责以增量和连续的方式运行它,并在流式数据不断到达时更新最终结果。
机器学习 (MLlib)
MLlib 构建在 Spark 之上,是一个可扩展的机器学习库,它提供了一组统一的高级 API,帮助用户创建和调整实用的机器学习管道。
Spark Core 和 RDD
Spark Core 是 Spark 平台的基础通用执行引擎,所有其他功能都构建在其之上。 它提供了 RDD(弹性分布式数据集)和内存计算能力。
请注意,RDD API 是一个低级 API,可能难以使用,并且您无法获得 Spark 自动查询优化功能的好处。 我们建议使用 DataFrames(请参阅上面的Spark SQL 和 DataFrames)而不是 RDD,因为它允许您更轻松地表达您想要的内容,并让 Spark 自动为您构建最有效的查询。
Spark Streaming(旧版)
Spark Streaming 是核心 Spark API 的扩展,它支持对实时数据流进行可扩展、高吞吐量、容错的流处理。
请注意,Spark Streaming 是上一代的 Spark 流引擎。 它是一个旧项目,不再更新。 Spark 中有一个更新且更易于使用的流引擎,称为 结构化流,您应该将其用于您的流应用程序和管道。