Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-2176

Extra unnecessary exchange operator in the result of an explain command

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0.1, 1.1.0
    • Component/s: SQL
    • Labels:
      None

      Description

      hql("explain select * from src group by key").collect().foreach(println)
      
      [ExplainCommand [plan#27:0]]
      [ Aggregate false, [key#25], [key#25,value#26]]
      [  Exchange (HashPartitioning [key#25:0], 200)]
      [   Exchange (HashPartitioning [key#25:0], 200)]
      [    Aggregate true, [key#25], [key#25]]
      [     HiveTableScan [key#25,value#26], (MetastoreRelation default, src, None), None]
      

      There are two exchange operators.

      However, if we do not use explain...

      hql("select * from src group by key")
      
      res4: org.apache.spark.sql.SchemaRDD = 
      SchemaRDD[8] at RDD at SchemaRDD.scala:100
      == Query Plan ==
      Aggregate false, [key#8], [key#8,value#9]
       Exchange (HashPartitioning [key#8:0], 200)
        Aggregate true, [key#8], [key#8]
         HiveTableScan [key#8,value#9], (MetastoreRelation default, src, None), None
      

      The plan is fine.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                yhuai Yin Huai
                Reporter:
                rxin Reynold Xin
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: