为什么Spark会用相同的描述和DAG将我的舞台分成3个不同的阶段?

时间:2017-11-17 18:57:47

标签: scala apache-spark

我有一个5个工作节点集群,每个集群有1个执行程序,每个执行程序有4个核心。

我有一个分布在20个分区上的rdd,我使用rdd.isEmpty方法检查。在火花历史记录服务器中,我可以看到三个不同的"作业"使用相同的"描述":

JobId                         Description                           Tasks
3                             isEmpty at myFile.scala:42            1/1
4                             isEmpty at myFile.scala:42            4/4
5                             isEmpty at myFile.scala:42            15/15

当我点击这些作业/阶段时,它们都具有相同的DAG。可能导致isEmpty阶段分为3个不同阶段的原因是什么?

此外,当我将RDD从20个分区更改为8个分区时,历史记录服务器显示:

JobId                         Description                           Tasks
3                             isEmpty at myFile.scala:42            1/1
4                             isEmpty at myFile.scala:42            4/4
5                             isEmpty at myFile.scala:42            3/3

在这两种情况下,这3个阶段的任务总和等于rdd的分区总数。为什么它不会像以下一样放在一个阶段:

JobId                         Description                           Tasks
3                             isEmpty at myFile.scala:42            20/20

0 个答案:

没有答案