aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYanbo Liang <ybliang8@gmail.com>2015-02-25 15:37:13 -0800
committerMichael Armbrust <michael@databricks.com>2015-02-25 15:37:13 -0800
commit41e2e5acb749c25641f1f8dea5a2e1d8af319486 (patch)
tree51ff9f112dc950ca548e07c381ed6bce7884c9b9
parent12dbf98c5d270e3846e946592666160b1541d9dc (diff)
downloadspark-41e2e5acb749c25641f1f8dea5a2e1d8af319486.tar.gz
spark-41e2e5acb749c25641f1f8dea5a2e1d8af319486.tar.bz2
spark-41e2e5acb749c25641f1f8dea5a2e1d8af319486.zip
[SPARK-5926] [SQL] make DataFrame.explain leverage queryExecution.logical
DataFrame.explain return wrong result when the query is DDL command. For example, the following two queries should print out the same execution plan, but it not. sql("create table tb as select * from src where key > 490").explain(true) sql("explain extended create table tb as select * from src where key > 490") This is because DataFrame.explain leverage logicalPlan which had been forced executed, we should use the unexecuted plan queryExecution.logical. Author: Yanbo Liang <ybliang8@gmail.com> Closes #4707 from yanboliang/spark-5926 and squashes the following commits: fa6db63 [Yanbo Liang] logicalPlan is not lazy 0e40a1b [Yanbo Liang] make DataFrame.explain leverage queryExecution.logical
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala b/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
index 04bf5d9b0f..f045da305c 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
@@ -264,7 +264,7 @@ class DataFrame protected[sql](
*/
def explain(extended: Boolean): Unit = {
ExplainCommand(
- logicalPlan,
+ queryExecution.logical,
extended = extended).queryExecution.executedPlan.executeCollect().map {
r => println(r.getString(0))
}