我搞不懂为什么一个舞台只有一个功能。在下面的代码中,map stage应该包含两个map函数,而不是一个;
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("test").setMaster("local[2]")
val sc = new SparkContext(conf)
val data = Array("Runoob", "Baidu", "Google")
val distData = sc.parallelize(data).map(x => (x, 1))
.map(x => x._2 + 1)
.collect()
distData.length
}
stage是一组独立的任务,所有任务都计算需要作为spark作业的一部分运行的相同函数,其中所有任务都具有相同的shuffle依赖项。调度程序运行的每一个dag任务在发生洗牌的边界处被分为多个阶段,然后dagscheduler按拓扑顺序运行这些阶段。
此url中的阶段含义;在此处输入链接说明
1条答案
按热度按时间rqcrx0a61#
连续的
map
操作通常可以合并到单个map
操作。据推测,斯帕克意识到和
相当于
即
x => 2
,这是一个单一的函数。这就是为什么你在spark阶段只看到一个函数。