Spark区分应用程序 Application、作业Job、阶段Stage、任务Task

目录

一、Spark核心概念

1、应用程序Application

2、作业Job

3、阶段Stage

4、任务Task

二、示例


一、Spark核心概念

在Apache Spark中,有几个核心概念用于描述应用程序的执行流程和组件,包括应用程序 Application、作业Job、阶段Stage、任务Task:

1、应用程序Application

指一个Spark应用程序通常指的是用户编写的Spark程序,它可能包含多个作业。例如一个基于Spark的机器学习算法的实现,或者一个处理日志文件并生成报告的程序。

2、作业Job

指由一个action操作触发的计算任务集合,action操作是触发实际计算的操作,例如count(), collect(), saveAsTextFile()等算子。例如saveAsTable()操作将触发一个作业来将DataFrame的内容保存到表中。

3、阶段Stage

一个作业会被分解成多个阶段,每个阶段包含一系列并行的任务。阶段通常由宽依赖(即需要跨分区重新分区的操作)来划分。例如,在一个简单的Word Count程序中,读取文本文件是一个阶段,然后对文本进行分词并计算每个单词的频率是另一个阶段。

4、任务Task

任务是最小的执行单位,每个任务对应于一个阶段中的一个数据分区。Spark将任务发送到集群中的执行器去执行。例如,在Word Count程序的第二个阶段,如果数据被分为10个分区,那么将会有10个任务分别计算每个分区的单词频率。

二、示例

python 复制代码
from pyspark.sql import SparkSession

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

# 读取文本文件
text_file = spark.sparkContext.textFile("/data/words.txt")

# 对文本进行分词并计算每个单词的频率
word_counts = text_file.flatMap(lambda line: line.split()).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)

# 触发作业,将结果保存到HDFS
word_counts.saveAsTextFile("/output")

# 关闭Spark会话
spark.stop()

上例中,整个Python脚本就是一个Spark应用程序,用于计算文本文件中每个单词的出现次数。

当执行saveAsTextFile算子时,触发了作业,因为saveAsTextFile是一个行动操作。该作业包含两个阶段,第一个阶段是读取文本文件并执行flatMap和map操作,第二个阶段是执行reduceByKey操作。

每个阶段会有多个任务,具体数量取决于数据分区的数量。例如,如果text_file有10个分区,那么在第一个阶段会有10个任务来处理每个分区的数据。

相关推荐
草莓熊Lotso8 分钟前
Python 入门必吃透:函数、列表与元组核心用法(附实战案例)
大数据·服务器·开发语言·c++·人工智能·python·qt
科研前沿8 小时前
镜像视界 CameraGraph™+多智能体:构建自感知自决策的全域空间认知网络技术方案
大数据·运维·人工智能·数码相机·计算机视觉
发哥来了9 小时前
AI视频生成模型选型指南:五大核心维度对比评测
大数据·人工智能·机器学习·ai·aigc
发哥来了9 小时前
AI驱动生产线的实际落地:一个东莞厂商的技术选型实录
大数据·人工智能·机器学习·ai·aigc
历程里程碑10 小时前
4 Git远程协作:从零开始,玩转仓库关联与代码同步(带实操代码讲解)
大数据·c++·git·elasticsearch·搜索引擎·gitee·github
AI周红伟11 小时前
周红伟:运营商一季度净利集体下滑 Token运营提速
大数据·网络·人工智能
无忧智库11 小时前
研发管理的下一个十年:当多Agent协同遇上知识图谱,传统项目管理体系正在被颠覆(WORD)
大数据·人工智能·知识图谱
汽车仪器仪表相关领域12 小时前
Kvaser Memorator Professional 5xHS CB:五通道CAN FD裸板记录仪,赋能多总线系统集成测试的旗舰级核心装备
大数据·网络·人工智能·单元测试·汽车·集成测试
头条快讯14 小时前
中国非遗美食文化的跨国传承:鲁味居在北美市场的标准化实践与布局
大数据·人工智能
我是发哥哈15 小时前
深度评测:五款主流AI培训平台的课程交付能力对比
大数据·人工智能·学习·机器学习·ai·chatgpt