当前位置: 首页 > news >正文

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

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

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

5. PySpark 示例

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()
http://www.dtcms.com/a/106378.html

相关文章:

  • ARM板 usb gadget hid 模拟键鼠
  • 基于 Jackson 的 JSON 工具类实现解析与设计模式应用
  • 网盘解析工具v1.3.1发布,希望能解决黑号问题吧
  • LTSPICE仿真电路:(二十四)MOS管推挽驱动电路简单仿真
  • 【idea】实用插件
  • Redis 03
  • HTML表单元素input
  • C++17更新内容汇总
  • CentOS 7 上安装 Hadoop 集群的详细教程
  • 华为2024年营收逼近历史峰值:终端业务复苏、智能汽车爆发式增长
  • Leetcode hot 100(day 3)
  • HDMI接口类型介绍
  • 在openharmony中部署helloworld应用(超详细)
  • 线段树,单点,区间修改查阅
  • 酶动力学预测工具CataPro安装教程
  • Rabbit:流加密的 “极速赛车手”
  • 单例模式与线程安全
  • 每日算法-250402
  • SESSION_UPLOAD_PROGRESS 的利用
  • Spark、Flink 和 TensorFlow 三大分布式数据处理框架对比
  • 微服务架构技术栈选型避坑指南:10大核心要素深度拆解
  • 供应链中的的“四流合一”
  • 以太网报文结构 via ethernetPacket in CAPL
  • 三轴云台之相机技术篇
  • JavaWeb开发基础知识-Servlet终极入门指南(曼波萌新版)
  • KingbaseES物理备份还原之物理备份
  • 单框架鸿蒙开发
  • 解决报错curl: (35) OpenSSL SSL_connect: 连接被对方重设 in connection to download.docker.com:443
  • JavaScript闭包
  • Python设计模式:责任链模式