dilipbiswal commented on a change in pull request #24759: [SPARK-27395][SQL]
Improve EXPLAIN command
URL: https://github.com/apache/spark/pull/24759#discussion_r316510915
##########
File path:
sql/core/src/main/scala/org/apache/spark/sql/execution/exchange/Exchange.scala
##########
@@ -77,6 +77,15 @@ case class ReusedExchangeExec(override val output:
Seq[Attribute], child: Exchan
override def outputOrdering: Seq[SortOrder] = {
child.outputOrdering.map(updateAttr(_).asInstanceOf[SortOrder])
}
+
+ override def verboseStringWithOperatorId(): String = {
+ val cdgen = ExplainUtils.getCodegenId(this)
+ val reuse_op_str = ExplainUtils.getOpId(child)
+ s"""
+ |(${ExplainUtils.getOpId(this)}) $nodeName ${cdgen} [Reuses operator
id: $reuse_op_str]
Review comment:
@cloud-fan I think we are okay here. Here is a simple plan involving
`ReusedSubqueryExec`
```
explain formatted select (select avg(a) from s1) + (select avg(a) from s1)
from s1 limit 1;
```
```
== Physical Plan ==
CollectLimit (3)
+- * Project (2)
+- Scan hive default.s1 (1)
(1) Scan hive default.s1
Output: []
(2) Project [codegen id : 1]
Output : [(Subquery scalar-subquery#151 + ReusedSubquery Subquery
scalar-subquery#151) AS (scalarsubquery() + scalarsubquery())#168]
Input : []
(3) CollectLimit
Input: [(scalarsubquery() + scalarsubquery())#168]
===== Subqueries =====
Subquery:1 Hosting operator id = 2 Hosting Expression = Subquery
scalar-subquery#151
* HashAggregate (7)
+- Exchange (6)
+- * HashAggregate (5)
+- Scan hive default.s1 (4)
(4) Scan hive default.s1
Output: [a#160]
(5) HashAggregate [codegen id : 1]
Input: [a#160]
(6) Exchange
Input: [sum#171, count#172L]
(7) HashAggregate [codegen id : 2]
Input: [sum#171, count#172L]
Subquery:2 Hosting operator id = 2 Hosting Expression = ReusedSubquery
Subquery scalar-subquery#151
```
Please let me know what you think.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]