提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- [Apache Spark基础知识点总览](#Apache Spark基础知识点总览)
-
- 目录
- 简介
- 核心组件
- [Spark SQL](#Spark SQL)
- [DataFrame与Dataset API](#DataFrame与Dataset API)
- RDD(弹性分布式数据集)
- [Spark Streaming](#Spark Streaming)
- MLlib(机器学习库)
- GraphX(图处理框架)
- 部署模式
- 示例代码
-
- 创建SparkContext
- 创建RDD并执行操作
- [使用DataFrame API](#使用DataFrame API)
- [使用Spark SQL](#使用Spark SQL)
- 总结
Apache Spark基础知识点总览
目录
- 简介
- 核心组件
- [Spark SQL](#Spark SQL)
- [DataFrame与Dataset API](#DataFrame与Dataset API)
-
RDD(弹性分布式数据集)\](#rdd(弹性分布式数据集))
-
MLlib(机器学习库)\](#mllib(机器学习库))
- 部署模式
- 示例代码
简介
Apache Spark是一个开源的分布式计算系统,旨在提供快速、通用的大规模数据处理和分析能力。它构建在Hadoop之上,但提供了比Hadoop MapReduce更丰富的数据处理方式,包括批处理、流处理、交互式查询和机器学习等。
核心组件
- Driver Program:运行应用程序的主函数,负责创建SparkContext,并与Cluster Manager通信以申请资源。
- Cluster Manager:在集群上获取资源的外部服务(如YARN、Mesos、Kubernetes或Spark自带的Standalone模式)。
- Worker Node:运行应用程序代码的数据节点。
- Executor:在Worker Node上为应用程序启动的进程,负责运行任务,并将结果返回给Driver。
Spark SQL
Spark SQL是Spark的一个模块,用于结构化数据的处理。它提供了一个DataFrame API,允许开发者以类似SQL的方式处理数据。
DataFrame与Dataset API
- DataFrame:一个分布式数据集合,类似于关系数据库中的表或Python中的pandas DataFrame。
- Dataset:DataFrame的扩展,提供了类型安全的操作。
RDD(弹性分布式数据集)
RDD是Spark中最基本的数据处理模型,是一个不可变的、分布式的数据集合。RDD允许用户进行低级别的数据操作,提供了丰富的转换(transformation)和动作(action)操作。
Spark Streaming
Spark Streaming是Spark的一个组件,用于处理实时数据流。它允许开发者以类似于批处理的方式处理实时数据,提供了高吞吐量和容错性。
MLlib(机器学习库)
MLlib是Spark的机器学习库,提供了常见的机器学习算法和工具,包括分类、回归、聚类、协同过滤等。
GraphX(图处理框架)
GraphX是Spark的图处理框架,提供了图数据的创建、转换和查询功能,适用于社交网络分析、推荐系统等应用场景。
部署模式
Spark支持多种部署模式,包括:
- Local Mode:在单机上运行Spark。
- Standalone Mode:使用Spark自带的集群管理器。
- YARN:Hadoop的资源管理器。
- Mesos:一个开源的集群管理器。
- Kubernetes:容器编排平台。
示例代码
创建SparkContext
python
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("MyApp").setMaster("local[*]")
sc = SparkContext(conf=conf)
创建RDD并执行操作
python
data = [1, 2, 3, 4, 5]
rdd = sc.parallelize(data)
result = rdd.map(lambda x: x * 2).collect()
print(result) # 输出: [2, 4, 6, 8, 10]
使用DataFrame API
python
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("MyApp").getOrCreate()
df = spark.createDataFrame([(1, "Alice"), (2, "Bob")], ["id", "name"])
df.show()
使用Spark SQL
python
df.createOrReplaceTempView("people")
result = spark.sql("SELECT name FROM people WHERE id = 1")
result.show()
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Spark基础知识点总览。