Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-33828 SQL Adaptive Query Execution QA
  3. SPARK-35695

QueryExecutionListener does not see any observed metrics fired before persist/cache

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.2.0
    • 3.0.3, 3.2.0, 3.1.3
    • SQL
    • None

    Description

      This example properly fires the event

      spark.range(100)
        .observe(
          name = "other_event",
          avg($"id").cast("int").as("avg_val"))
        .collect()
      

      But when I add persist, then no event is fired or seen (not sure which):

      spark.range(100)
        .observe(
          name = "my_event",
          avg($"id").cast("int").as("avg_val"))
        .persist()
        .collect()
      

      The listener:

          val metricMaps = ArrayBuffer.empty[Map[String, Row]]
          val listener = new QueryExecutionListener {
            override def onSuccess(funcName: String, qe: QueryExecution, duration: Long): Unit = {
              metricMaps += qe.observedMetrics
            }
      
            override def onFailure(funcName: String, qe: QueryExecution, exception: Exception): Unit = {
              // No-op
            }
          }
          spark.listenerManager.register(listener)
      

      Attachments

        Activity

          People

            tanelk Tanel Kiis
            tanelk Tanel Kiis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: