diff options
author | Sean Zhong <seanzhong@databricks.com> | 2016-06-02 16:21:33 -0700 |
---|---|---|
committer | Cheng Lian <lian@databricks.com> | 2016-06-02 16:21:33 -0700 |
commit | 985d532812cf176d0e12b799c723f917282b6813 (patch) | |
tree | f3c960b8acc271b76713427a3cfd2162defc1ff9 /sql/catalyst | |
parent | 431542765785304edb76a19885fbc5f9b8ae7d64 (diff) | |
download | spark-985d532812cf176d0e12b799c723f917282b6813.tar.gz spark-985d532812cf176d0e12b799c723f917282b6813.tar.bz2 spark-985d532812cf176d0e12b799c723f917282b6813.zip |
[SPARK-15734][SQL] Avoids printing internal row in explain output
## What changes were proposed in this pull request?
This PR avoids printing internal rows in explain output for some operators.
**Before change:**
```
scala> (1 to 10).toSeq.map(_ => (1,2,3)).toDF().createTempView("df3")
scala> spark.sql("select * from df3 where 1=2").explain(true)
...
== Analyzed Logical Plan ==
_1: int, _2: int, _3: int
Project [_1#37,_2#38,_3#39]
+- Filter (1 = 2)
+- SubqueryAlias df3
+- LocalRelation [_1#37,_2#38,_3#39], [[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3]]
...
== Physical Plan ==
LocalTableScan [_1#37,_2#38,_3#39]
```
**After change:**
```
scala> spark.sql("select * from df3 where 1=2").explain(true)
...
== Analyzed Logical Plan ==
_1: int, _2: int, _3: int
Project [_1#58,_2#59,_3#60]
+- Filter (1 = 2)
+- SubqueryAlias df3
+- LocalRelation [_1#58,_2#59,_3#60]
...
== Physical Plan ==
LocalTableScan <empty>, [_1#58,_2#59,_3#60]
```
## How was this patch tested?
Manual test.
Author: Sean Zhong <seanzhong@databricks.com>
Closes #13471 from clockfly/verbose_breakdown_5.
Diffstat (limited to 'sql/catalyst')
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LocalRelation.scala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LocalRelation.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LocalRelation.scala index 5813b74c77..87b8647655 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LocalRelation.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LocalRelation.scala @@ -57,7 +57,13 @@ case class LocalRelation(output: Seq[Attribute], data: Seq[InternalRow] = Nil) LocalRelation(output.map(_.newInstance()), data).asInstanceOf[this.type] } - override protected def stringArgs = Iterator(output) + override protected def stringArgs: Iterator[Any] = { + if (data.isEmpty) { + Iterator("<empty>", output) + } else { + Iterator(output) + } + } override def sameResult(plan: LogicalPlan): Boolean = plan match { case LocalRelation(otherOutput, otherData) => |