Github user edwinalu commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21221#discussion_r187506780
  
    --- Diff: 
core/src/main/scala/org/apache/spark/scheduler/EventLoggingListener.scala ---
    @@ -169,6 +179,27 @@ private[spark] class EventLoggingListener(
     
       // Events that trigger a flush
       override def onStageCompleted(event: SparkListenerStageCompleted): Unit 
= {
    +    // log the peak executor metrics for the stage, for each executor
    +    val accumUpdates = new ArrayBuffer[(Long, Int, Int, 
Seq[AccumulableInfo])]()
    +    val executorMap = liveStageExecutorMetrics.remove(
    +      (event.stageInfo.stageId, event.stageInfo.attemptNumber()))
    +    executorMap.foreach {
    +      executorEntry => {
    +        for ((executorId, peakExecutorMetrics) <- executorEntry) {
    --- End diff --
    
    The for loop (line 187) is going through the hashmap entries of executorId 
to peakExecutorMetrics, so there are multiple values. Could you please provide 
more detail for how "case (executorId, peakExecutorMetrics) =>" would work? If 
the for loop is OK, then I can add some comments.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to