从0开始学习pyspark--pyspark的核心概念[第0节]

在学习 PySpark时会遇到很多新的关键词,理解这些概念,对我们学习PySpark有极大的帮助,以下是一些PySpark的关键概念及其详细解释:

1. PySpark

PySpark是Apache Spark的Python API。Spark是一个用于大规模数据处理的开源分布式计算系统,支持内存计算和基于磁盘的数据处理,具有高性能和可扩展性。

2. SparkContext (SC)

SparkContext是所有Spark功能的入口点。它是Spark应用的主控对象,用于连接到集群并创建RDD(Resilient Distributed Datasets)。

3. Resilient Distributed Dataset (RDD)

RDD是Spark的核心抽象,是一个不可变的分布式数据集合。RDD支持两种操作:Transformations (如map, filter)和Actions (如count, collect)。

4. DataFrame

DataFrame是Spark SQL中的一个分布式数据集合,类似于Pandas的DataFrame。DataFrame有更高层次的抽象,相比于RDD提供了更多优化和更简单的API。

5. Spark SQL

Spark SQL是Spark中处理结构化数据的组件,允许你使用SQL查询DataFrame和RDD。它还支持从多种数据源读取数据,如JSON、Parquet、JDBC等。

6. SparkSession

SparkSession是用于与Spark交互的新的入口点,它整合了SparkContext、SQLContext、HiveContext的功能。你可以通过SparkSession创建DataFrame和执行SQL查询。

python 复制代码
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("example") \
    .getOrCreate()

7. Transformations

Transformations是对RDD的惰性操作(lazy operations),即不会立即计算结果,而是生成一个新的RDD。当需要执行一个Action时,Spark才会开始计算。常见的Transformations包括:

  • map(func): 对RDD中的每个元素应用函数func,并返回一个新的RDD。
  • filter(func): 保留RDD中使函数func返回True的元素,返回一个新的RDD。
  • flatMap(func): 类似于map,但每个输入元素可以映射到0个或多个输出元素。

8. Actions

Actions是对RDD的操作,会触发计算并返回结果。常见的Actions包括:

  • collect(): 返回RDD中所有元素的列表。
  • count(): 返回RDD中元素的个数。
  • first(): 返回RDD中的第一个元素。

9. Lazy Evaluation

PySpark使用惰性求值(Lazy Evaluation),即Transformations不会立即执行,而是记录下需要进行的操作。当执行一个Action时,Spark会根据需要生成执行计划并优化执行。

10. Spark SQL and DataFrames

Spark SQL支持通过SQL语句查询数据,并且可以与DataFrame API无缝集成。

python 复制代码
df = spark.read.json("example.json")
df.createOrReplaceTempView("example")
result = spark.sql("SELECT * FROM example WHERE age > 21")

11. Spark Streaming

Spark Streaming用于实时处理数据流,支持从多种数据源读取数据,如Kafka、Flume、Kinesis等。它将实时数据流分成小批次进行处理,并提供类似于RDD的API。

12. Machine Learning Library (MLlib)

MLlib是Spark的机器学习库,提供了多种机器学习算法和工具,如分类、回归、聚类、协同过滤等。

13. GraphX

GraphX是Spark的图计算库,提供了图算法和图操作的API,用于处理大规模图数据。

14. Spark的集群模式

Spark支持多种集群模式,包括本地模式、Standalone模式、YARN模式和Mesos模式。不同的模式适用于不同的应用场景和集群配置。

相关推荐
夜雪一千5 分钟前
应用层加密的优缺点
python
计算机编程指导师17 分钟前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
卿卿的产品经理日记21 分钟前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
用户03321266636729 分钟前
Python 实用技巧:从零自主生成结构化 PDF 页面
python
benchmark_cc31 分钟前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
计算机编程指导师44 分钟前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
code2cat1 小时前
【随笔】MCP输入Schema:把参数错误拦在工具执行之前
python·json schema·ai agent·mcp
一条泥憨鱼1 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
m0_715674431 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
大数据·网络·人工智能·网络安全
计算机编程指导师1 小时前
Python大数据毕设怎么写?Django结合Hadoop+Spark京东销售分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·京东商品