ใน spark-shell ของฉันรายการด้านล่างหมายความว่าอย่างไรเมื่อฉันเรียกใช้ฟังก์ชัน
[Stage7:===========> (14174 + 5) / 62500]
ใน spark-shell ของฉันรายการด้านล่างหมายความว่าอย่างไรเมื่อฉันเรียกใช้ฟังก์ชัน
[Stage7:===========> (14174 + 5) / 62500]
คำตอบ:
สิ่งที่คุณได้รับคือConsole Progress Bar
,
[Stage 7:
การแสดงบนเวทีที่คุณอยู่ในขณะนี้และ
เป็น(14174 + 5) / 62500]
(numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
แถบความคืบหน้าการแสดง/numCompletedTasks
totalNumOfTasksInThisStage
จะแสดงเมื่อทั้งสอง spark.ui.showConsoleProgress
เป็นจริง (โดยค่าเริ่มต้น) และระดับการเข้าสู่ระบบconf/log4j.properties
เป็นERROR
หรือWARN
( !log.isInfoEnabled
เป็นจริง)
มาดูรหัสในConsoleProgressBar.scalaที่แสดงให้เห็น:
private def show(now: Long, stages: Seq[SparkStageInfo]) {
val width = TerminalWidth / stages.size
val bar = stages.map { s =>
val total = s.numTasks()
val header = s"[Stage ${s.stageId()}:"
val tailer = s"(${s.numCompletedTasks()} + ${s.numActiveTasks()}) / $total]"
val w = width - header.length - tailer.length
val bar = if (w > 0) {
val percent = w * s.numCompletedTasks() / total
(0 until w).map { i =>
if (i < percent) "=" else if (i == percent) ">" else " "
}.mkString("")
} else {
""
}
header + bar + tailer
}.mkString("")
// only refresh if it's changed of after 1 minute (or the ssh connection will be closed
// after idle some time)
if (bar != lastProgressBar || now - lastUpdateTime > 60 * 1000L) {
System.err.print(CR + bar)
lastUpdateTime = now
}
lastProgressBar = bar
}
สมมติว่าคุณเห็นสิ่งต่อไปนี้ (X, A, B, C ไม่ใช่จำนวนเต็มลบเสมอ):
[Stage X:==========> (A + B) / C]
(ตัวอย่างเช่นในคำถาม X = 7, A = 14174, B = 5 และ C = 62500)
นี่คือสิ่งที่เกิดขึ้นในระดับสูง: Spark แบ่งงานเป็นขั้นตอนและงานในแต่ละขั้นตอน ตัวบ่งชี้ความคืบหน้านี้หมายความว่า Stage X ประกอบด้วยงาน C ในระหว่างการดำเนินการ A และ B เริ่มต้นที่ศูนย์และเปลี่ยนแปลงไปเรื่อย ๆ A คือจำนวนงานที่ทำเสร็จแล้วและ B คือจำนวนงานที่กำลังดำเนินการอยู่ สำหรับขั้นตอนที่มีงานจำนวนมาก (มากกว่าคนงานที่คุณมี) คุณควรคาดหวังว่า B จะเติบโตเป็นจำนวนที่สอดคล้องกับจำนวนคนงานที่คุณมีในคลัสเตอร์คุณควรเริ่มเห็น A เพิ่มขึ้นเมื่องานเสร็จสมบูรณ์ ในตอนท้ายเมื่อดำเนินการสองสามงานสุดท้าย B จะเริ่มลดลงจนกว่าจะถึง 0 ซึ่งจุด A ควรเท่ากับ C เวทีจะเสร็จสิ้นและประกายไฟจะย้ายไปยังขั้นตอนถัดไป C จะคงที่ตลอดเวลาจำไว้ว่าเป็นจำนวนงานทั้งหมดในขั้นตอนและไม่เปลี่ยนแปลง
====> แสดงเปอร์เซ็นต์ของงานที่ทำตามที่ฉันอธิบายไว้ข้างต้น ที่จุดเริ่มต้น> จะไปทางซ้ายและจะเลื่อนไปทางขวาเมื่องานเสร็จสมบูรณ์