apache-spark - Apache Zeppelin 如何计算 Spark 作业进度条?
问题描述
从 Apache Zeppelin 笔记本界面启动 spark 作业时,它会显示作业执行的进度条。但这一进展究竟意味着什么?有时它会缩小或扩大。是当前阶段的进步还是整个工作?
解决方案
在 Web 界面中,进度条显示函数返回的值getProgress
(不是为每个解释器实现的,例如python)。
此函数返回一个百分比。
使用 Spark 解释器时,该值似乎是已完成任务的百分比(progress
从JobProgressUtil调用以下函数):
def progress(sc: SparkContext, jobGroup : String):Int = {
val jobIds = sc.statusTracker.getJobIdsForGroup(jobGroup)
val jobs = jobIds.flatMap { id => sc.statusTracker.getJobInfo(id) }
val stages = jobs.flatMap { job =>
job.stageIds().flatMap(sc.statusTracker.getStageInfo)
}
val taskCount = stages.map(_.numTasks).sum
val completedTaskCount = stages.map(_.numCompletedTasks).sum
if (taskCount == 0) {
0
} else {
(100 * completedTaskCount.toDouble / taskCount).toInt
}
}
同时,我在 Zeppelin 文档中找不到它。
推荐阅读
- powershell - azure devops 在 powershell 中使用 dbatools 构建任务警告
- python - Python Flask:为新请求返回相同的响应
- sql-server - SQL Server - 找出子查询中返回的字符串是否包含另一个字符串
- sql - 案例语句“%x%”问题
- html - 带有面具的 svg 在 chrome 上看不到
- javascript - 如何保持这些条件干燥
- powerbi - 将 Power BI 发布的报表与 RLS 共享为公开
- django - 在 Django 中建模产品订单
- html - 网格还是表格?右下角的文本和图像 (4/4)
- javascript - 跟随鼠标的图像