关于Spark执行,我有一个问题。
我们都知道每个spark应用程序(或驱动程序)可能包含一个或多个动作。
我的问题是哪个是正确的-一组作业对应一个动作吗?还是每个作业对应一个动作?这里的工作是指可以在Spark执行用户界面中看到的工作。
我认为后者是正确的(每个工作对应一个动作)。请验证
谢谢。
答案 0 :(得分:0)
您的理解是正确的。
spark中的每个操作都对应于一个Spark Job 。这些动作由应用程序中的驱动程序调用。
因此,一个动作可能涉及到数据集(或RDD)上的许多转换。这在工作中创造了阶段。
阶段可以看作是一组计算(任务),每个计算(任务)都可以在执行程序上进行计算,而无需与其他执行程序或驱动程序进行通信。
换句话说,每当需要工作人员之间的网络传播时,新的阶段就会开始;例如随机播放。这些创建舞台边界的依赖性称为ShuffleDependencies。