Avi*_*jit 3 hadoop scala apache-spark rdd spark-dataframe
我想DataFrame在HDFS使用中保存为文本文件spark-shell.
scala> finalDataFrame.rdd.saveAsTextFile(targetFile)
Run Code Online (Sandbox Code Playgroud)
执行上面的代码后,我发现内部使用阶段做了一些工作.
[第13阶段:================================>(119 + 8)/ 200]
我试图了解这个过程的基本细节.但是不能这样做.我的问题是 -
[第18阶段:=============>(199 + 1)/ 200] [第27阶段:============>(173 + 3)/ 200 ]
[第13阶段:================================>(119 + 8)/ 200]
- 什么是第13阶段?
每个Spark工作分为几个阶段.在这种情况下的工作是将DataFrame保存为文本文件,"阶段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("")
Run Code Online (Sandbox Code Playgroud)
每个阶段分为任务.119是此阶段(即阶段13)的已完成任务8的数量,是此阶段的活动任务数,并且200是此阶段的任务总数.
[第18阶段:=============>(199 + 1)/ 200] [第27阶段:============>(173 + 3)/ 200 ]
- 这条线的含义是什么?
- 以前只有1个阶段正在运行,但在这里我可以找到2个阶段正在运行.因此,当多个阶段并行工作时?
/** ...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
}
Run Code Online (Sandbox Code Playgroud)
这些阶段同时运行,因此在刷新进度条的时间窗口内,可以运行多个阶段.在这种情况下,阶段18和27同时运行.代码将显示限制为三个同时运行的任务.
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |