Pyspark学习一:概述

PySpark 介绍 & 为什么使用 PySpark

官方文档:https://spark.apache.org/docs/latest/api/python/

1. PySpark 是什么?

PySpark 是 Apache Spark 的 Python API,提供了 大规模分布式计算能力 ,用于处理 大数据

Spark 本身是一个 基于内存计算的分布式计算框架 ,比 Hadoop MapReduce 更快,适用于 批处理、流处理、机器学习和图计算

PySpark = Spark(核心计算引擎) + Python API,允许 Python 开发者轻松使用 Spark 进行大规模数据处理。

2. 为什么使用 PySpark?

适用于大规模数据处理

  • PySpark 可以在 集群 (如 Hadoop YARN、Kubernetes、Standalone)上运行,处理 TB 或 PB 级数据
  • 适合处理 海量数据集,不受单机内存限制。

比 Hadoop MapReduce 快

  • Spark 基于内存计算 ,比传统的 Hadoop MapReduce 更快(10-100 倍)。
  • 支持 DAG(有向无环图)执行计划,优化计算过程。

兼容 Python 生态

  • 支持 Pandas (通过 pyspark.pandas)。
  • 集成机器学习 (通过 pyspark.ml)。
  • 可以与 NumPy、SciPy、Matplotlib 结合使用。

支持 SQL 查询

  • PySpark 提供了 Spark SQL,可以用 SQL 语法操作大数据,方便分析。

支持流式计算

  • PySpark 的 Structured Streaming 可用于实时数据处理,如 日志分析、监控、金融风控

内置 ML 和图计算

  • MLlib 提供了分布式机器学习库(支持回归、分类、聚类等)。
  • GraphX 支持分布式图计算(如 PageRank)。

3. PySpark 适用场景

  • 大规模 ETL(数据清洗、转换、加载)
  • 数据分析(支持 SQL 查询)
  • 机器学习(大规模训练,替代 pandas/scikit-learn)
  • 流处理(Kafka + Spark Streaming)
  • 实时数据分析(如推荐系统、风控、监控)

4. PySpark vs Pandas

对比项 PySpark Pandas
处理规模 TB / PB 级大数据 仅适合小数据(<10GB)
计算方式 分布式计算(集群) 单机计算
性能 基于内存计算,优化执行 纯 Python,计算较慢
并行化 自动并行 需手动优化
SQL 支持 Spark SQL 仅支持 DataFrame 操作
机器学习 MLlib,分布式训练 Scikit-learn,仅限小数据

🔥 如果数据 <10GB,推荐 Pandas;如果数据 >10GB,推荐 PySpark!

5. PySpark 示例

python 复制代码
from pyspark.sql import SparkSession

# 创建 Spark 会话
spark = SparkSession.builder.appName("Example").getOrCreate()

# 读取 CSV 数据
df = spark.read.csv("data.csv", header=True, inferSchema=True)

# 查询 & 处理数据
df.filter(df["age"] > 25).groupBy("city").count().show()

# 关闭 Spark
spark.stop()
相关推荐
Swaggy T2 分钟前
自动驾驶轨迹规划算法——Apollo EM Planner
人工智能·算法·自动驾驶
gptplusplus6 分钟前
超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
人工智能·重构·系统架构
jndingxin14 分钟前
OpenCV图像注册模块
人工智能·opencv·计算机视觉
数据智研16 分钟前
【数据分享】上市公司创新韧性数据(2007-2023)
大数据·人工智能
赵英英俊19 分钟前
Python day46
python·深度学习·机器学习
荼蘼20 分钟前
OpenCv(三)——图像平滑处理
人工智能·opencv·计算机视觉
martian66522 分钟前
AI大模型实践项目:医学影像分类器(肺结节检测)
人工智能·ai大模型·医学影像·影像大模型·肺结节
Monkey PilotX31 分钟前
机器人“ChatGPT 时刻”倒计时
人工智能·机器学习·计算机视觉·自动驾驶
luoganttcc33 分钟前
L4 级别自动驾驶 硬件架构设计
人工智能·自动驾驶·硬件架构
Brookty35 分钟前
【Java学习】锁、线程死锁、线程安全2
java·开发语言·学习·java-ee