PySpark 概述

日期 : 2024年9月09日 版本 : 3.5.3

有用的链接 : Live Notebook | GitHub | 问题 | 示例 | 社区

PySpark是Apache Spark的Python API。它使您能够使用Python在分布式环境中执行实时、大规模的数据处理。它还提供了一个PySpark shell,用于交互式分析您的数据。

PySpark结合了Python的可学习性和易用性,以及Apache Spark的强大功能,使得任何熟悉Python的人都能处理和分析任何规模的数据。

PySpark 支持 Spark 的所有功能,例如 Spark SQL、DataFrames、结构化流处理、机器学习 (MLlib) 和 Spark Core。

Spark SQL 在 Spark 上的 Pandas API 流式处理 机器学习
Spark 核心和 RDDs

Spark SQL 和 DataFrames

Spark SQL是Apache Spark处理结构化数据的模块。它允许您无缝地将SQL查询与Spark程序混合使用。使用PySpark DataFrames,您可以高效地读取、写入、转换和分析数据,使用Python和SQL。无论您使用Python还是SQL,都会使用相同的底层执行引擎,因此您将始终充分利用Spark的全部能力。

None

基于Spark的Pandas API

Pandas API on Spark 使您可以通过在多个节点上分布式运行,将您的 pandas 工作负载扩展到任意大小。如果您已经熟悉 pandas 并希望利用 Spark 处理大数据,Pandas API on Spark 使您立即高效,并允许您在不修改代码的情况下迁移应用程序。您可以拥有一个单一的代码库,该代码库既适用于 pandas(测试,较小的数据集)也适用于 Spark(生产,分布式数据集),并且您可以轻松无负担地在 pandas API 和 Pandas API on Spark 之间切换。

Pandas API on Spark旨在使从pandas过渡到Spark变得简单,但是如果您是Spark的新手或正在决定使用哪个API,我们建议使用PySpark(参见 Spark SQL和DataFrames )。

结构化流处理

结构化流处理是建立在Spark SQL引擎上的可扩展和容错的流处理引擎。 您可以通过与在静态数据上表达批处理计算相同的方式来表达流处理计算。 Spark SQL引擎将负责以增量和连续的方式运行它,并在流数据持续到达时更新最终结果。

机器学习 (MLlib)

基于Spark构建,MLlib是一个可扩展的机器学习库,提供一套统一的高阶API,帮助用户创建和调整实际的机器学习管道。

Spark核心和RDD

Spark Core 是 Spark 平台的基础通用执行引擎,所有其他功能都是建立在其之上的。它提供了 RDD(弹性分布式数据集)和内存计算能力。

请注意,RDD API 是一个低级 API,使用起来可能会很困难,并且您无法享受到 Spark 自动查询优化能力的好处。我们建议使用 DataFrames(请参见上面的 Spark SQL 和 DataFrames ),因为它使您更容易表达您想要的内容,并让 Spark 自动为您构建最有效的查询。

Spark Streaming(遗留版)

Spark Streaming 是核心 Spark API 的扩展,能够支持可伸缩的、高吞吐量的、容错的实时数据流处理。

请注意,Spark Streaming 是 Spark 流处理引擎的上一代。 这是一个遗留项目,不再进行更新。 在 Spark 中有一个更新的、使用更简便的流处理引擎, 结构化流处理 ,您 应该为您的流处理应用程序和管道使用它。