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()
相关推荐
cooldream200920 分钟前
华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统
人工智能·华为云·dify
Zfox_25 分钟前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
陈丹阳(滁州学院)2 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16093 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
Blossom.1183 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
GUIQU.4 小时前
【Oracle】数据仓库
数据库·oracle
scdifsn5 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
DFminer5 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖5 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存