Skip to content

Commit 1290cd5

Browse files
committed
Address comments and fix PySpark test
1 parent f0bcf12 commit 1290cd5

File tree

5 files changed

+99
-76
lines changed

5 files changed

+99
-76
lines changed

python/pyspark/sql/dataframe.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,8 @@ def explain(self, extended=None, mode=None):
284284
== Physical Plan ==
285285
* Scan ExistingRDD (1)
286286
(1) Scan ExistingRDD [codegen id : 1]
287-
Output: [age#0, name#1]
287+
Output [2]: [age#0, name#1]
288+
...
288289
289290
.. versionchanged:: 3.0.0
290291
Added optional argument `mode` to specify the expected output format of plans.

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ package org.apache.spark.sql.catalyst.plans
2020
import org.apache.spark.sql.AnalysisException
2121
import org.apache.spark.sql.catalyst.expressions._
2222
import org.apache.spark.sql.catalyst.trees.{CurrentOrigin, TreeNode, TreeNodeTag}
23-
import org.apache.spark.sql.catalyst.util.StringUtils.PlanStringConcat
2423
import org.apache.spark.sql.internal.SQLConf
2524
import org.apache.spark.sql.types.{DataType, StructType}
2625

@@ -189,15 +188,18 @@ abstract class QueryPlan[PlanType <: QueryPlan[PlanType]] extends TreeNode[PlanT
189188
val codegenIdStr =
190189
getTagValue(QueryPlan.CODEGEN_ID_TAG).map(id => s"[codegen id : $id]").getOrElse("")
191190
val operatorId = getTagValue(QueryPlan.OP_ID_TAG).map(id => s"$id").getOrElse("unknown")
191+
val baseStr = s"($operatorId) $nodeName $codegenIdStr"
192192
val argumentString = argString(SQLConf.get.maxToStringFields)
193193

194-
val result = s"""
195-
|($operatorId) $nodeName $codegenIdStr
196-
""".stripMargin
197-
if (argumentString != null && !argumentString.isEmpty) {
198-
s"""${result} |Arguments: $argumentString\n""".stripMargin
194+
if (argumentString.nonEmpty) {
195+
s"""
196+
|$baseStr
197+
|Arguments: $argumentString
198+
""".stripMargin
199199
} else {
200-
result
200+
s"""
201+
|$baseStr
202+
""".stripMargin
201203
}
202204
}
203205

sql/core/src/main/scala/org/apache/spark/sql/execution/ExplainUtils.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ object ExplainUtils {
189189
case iter: Iterable[_] => s"${fieldName} [${iter.size}]: ${iter.mkString("[", ", ", "]")}"
190190
case str: String if (str == null || str.isEmpty) => s"${fieldName}: None"
191191
case str: String => s"${fieldName}: ${str}"
192-
case _ => s"${fieldName}: Unknown"
192+
case _ => throw new IllegalArgumentException(s"Unsupported type for argument values: $values")
193193
}
194194

195195
/**

sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -514,14 +514,20 @@ trait LeafExecNode extends SparkPlan {
514514
override def producedAttributes: AttributeSet = outputSet
515515
override def verboseStringWithOperatorId(): String = {
516516
val argumentString = argString(SQLConf.get.maxToStringFields)
517-
val result = s"""
518-
|(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}
519-
|${ExplainUtils.generateFieldString("Output", producedAttributes)}
520-
""".stripMargin
521-
if (argumentString != null && !argumentString.isEmpty) {
522-
s"""${result} |Arguments: $argumentString\n""".stripMargin
517+
val baseStr = s"(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}"
518+
val outputStr = s"${ExplainUtils.generateFieldString("Output", producedAttributes)}"
519+
520+
if (argumentString.nonEmpty) {
521+
s"""
522+
|$baseStr
523+
|$outputStr
524+
|Arguments: $argumentString
525+
""".stripMargin
523526
} else {
524-
s"${result}"
527+
s"""
528+
|$baseStr
529+
|$outputStr
530+
""".stripMargin
525531
}
526532
}
527533
}
@@ -539,14 +545,20 @@ trait UnaryExecNode extends SparkPlan {
539545
override final def children: Seq[SparkPlan] = child :: Nil
540546
override def verboseStringWithOperatorId(): String = {
541547
val argumentString = argString(SQLConf.get.maxToStringFields)
542-
val result = s"""
543-
|(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}
544-
|${ExplainUtils.generateFieldString("Input", child.output)}
545-
""".stripMargin
546-
if (argumentString != null && !argumentString.isEmpty) {
547-
s"""${result} |Arguments: $argumentString\n""".stripMargin
548+
val baseStr = s"(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}"
549+
val inputStr = s"${ExplainUtils.generateFieldString("Input", child.output)}"
550+
551+
if (argumentString.nonEmpty) {
552+
s"""
553+
|$baseStr
554+
|$inputStr
555+
|Arguments: $argumentString
556+
""".stripMargin
548557
} else {
549-
s"${result}"
558+
s"""
559+
|$baseStr
560+
|$inputStr
561+
""".stripMargin
550562
}
551563
}
552564
}
@@ -558,15 +570,23 @@ trait BinaryExecNode extends SparkPlan {
558570
override final def children: Seq[SparkPlan] = Seq(left, right)
559571
override def verboseStringWithOperatorId(): String = {
560572
val argumentString = argString(SQLConf.get.maxToStringFields)
561-
val result = s"""
562-
|(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}
563-
|${ExplainUtils.generateFieldString("Left output", left.output)}
564-
|${ExplainUtils.generateFieldString("Right output", right.output)}
565-
""".stripMargin
566-
if (argumentString != null && !argumentString.isEmpty) {
567-
s"""${result} |Arguments: $argumentString\n""".stripMargin
573+
val baseStr = s"(${ExplainUtils.getOpId(this)}) $nodeName ${ExplainUtils.getCodegenId(this)}"
574+
val leftOutputStr = s"${ExplainUtils.generateFieldString("Left output", left.output)}"
575+
val rightOutputStr = s"${ExplainUtils.generateFieldString("Right output", right.output)}"
576+
577+
if (argumentString.nonEmpty) {
578+
s"""
579+
|$baseStr
580+
|$leftOutputStr
581+
|$rightOutputStr
582+
|Arguments: $argumentString
583+
""".stripMargin
568584
} else {
569-
s"${result}"
585+
s"""
586+
|$baseStr
587+
|$leftOutputStr
588+
|$rightOutputStr
589+
""".stripMargin
570590
}
571591
}
572592
}

0 commit comments

Comments
 (0)