Scala 星火舞台的细节
我正在尝试使用Scala 星火舞台的细节,scala,hadoop,apache-spark,spark-dataframe,rdd,Scala,Hadoop,Apache Spark,Spark Dataframe,Rdd,我正在尝试使用sparkshell将DataFrame保存为HDFS中的文本文件 scala> finalDataFrame.rdd.saveAsTextFile(targetFile) 执行上述代码后,我发现spark在内部使用stage进行一些工作 [第13阶段:===============================>(119)+ 8) //200] 我试图了解这个过程的基本细节。但我们不能这样做。 我的问题是—— 什么是第13阶段 什么是(119+8)/200 [第18阶段
sparkshell
将DataFrame
保存为HDFS
中的文本文件
scala> finalDataFrame.rdd.saveAsTextFile(targetFile)
执行上述代码后,我发现spark在内部使用stage进行一些工作
[第13阶段:===============================>(119)+
8) //200]
我试图了解这个过程的基本细节。但我们不能这样做。
我的问题是——
val bar = stages.map { s =>
val total = s.numTasks()
val header = s"[Stage ${s.stageId()}:"
val tailer = s"(${s.numCompletedTasks()} + ${s.numActiveTasks()}) / $total]"
...
}.mkString("")
每个阶段分为任务119
是此阶段(即阶段13)已完成的任务数,8
是此阶段的活动任务数,200
是此阶段的任务总数
[第18阶段:=======>(199+1)/200][第27阶段:=======>(173+3)/200]
/** ...If multiple stages run in the same time, the status
* of them will be combined together, showed in one line.
*/
...
if (stages.length > 0) {
show(now, stages.take(3)) // display at most 3 stages in same time
}
这些阶段同时运行,因此在刷新进度条的时间窗口内,可能会运行多个阶段。在这种情况下,阶段18和阶段27同时运行。代码将显示限制为三个同时运行的任务。感谢您的解释。你能告诉我Spark是如何将一项工作内部划分为多个阶段和多个任务的吗。Spark如何决定阶段和任务的数量。