From 4e581fd6ea4abb5f0cb216744f6e0aaf04a0da2b Mon Sep 17 00:00:00 2001 From: Takeshi Yamamuro Date: Sat, 14 Dec 2019 08:15:46 +0900 Subject: [PATCH 1/2] Fix --- python/pyspark/sql/dataframe.py | 10 +++++----- .../src/main/scala/org/apache/spark/sql/Dataset.scala | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/python/pyspark/sql/dataframe.py b/python/pyspark/sql/dataframe.py index 9f86086dad83d..0ddb725bc7fe7 100644 --- a/python/pyspark/sql/dataframe.py +++ b/python/pyspark/sql/dataframe.py @@ -305,11 +305,11 @@ def explain(self, extended=None, mode=None): is_mode_case = mode is not None and isinstance(mode, basestring) if not is_no_argument and not (is_extended_case or is_mode_case): - argtypes = [ - str(type(arg)) for arg in [extended, mode] if arg is not None] - raise TypeError( - "extended (optional) and mode (optional) should be a bool and str; " - "however, got [%s]." % ", ".join(argtypes)) + if extended is not None: + errMsg = "extended should be provided as bool, got {0}".format(type(extended)) + else: # For mode case + errMsg = "mode should be provided as str, got {0}".format(type(mode)) + raise TypeError(errMsg) # Sets an explain mode depending on a given argument if is_no_argument: diff --git a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala index 42338bd8accac..3fb82420a515c 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala @@ -547,6 +547,7 @@ class Dataset[T] private[sql]( } } + // This method intends to be called from PySpark DataFrame private[sql] def toExplainString(mode: String): String = { mode.toLowerCase(Locale.ROOT) match { case "simple" => toExplainString(ExplainMode.Simple) From d98e261c36d5418c85b4b3618f740e0260c000ed Mon Sep 17 00:00:00 2001 From: Takeshi Yamamuro Date: Sat, 14 Dec 2019 20:36:26 +0900 Subject: [PATCH 2/2] Fix --- python/pyspark/sql/dataframe.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/pyspark/sql/dataframe.py b/python/pyspark/sql/dataframe.py index 0ddb725bc7fe7..43dd30b8ca8ee 100644 --- a/python/pyspark/sql/dataframe.py +++ b/python/pyspark/sql/dataframe.py @@ -306,9 +306,10 @@ def explain(self, extended=None, mode=None): if not is_no_argument and not (is_extended_case or is_mode_case): if extended is not None: - errMsg = "extended should be provided as bool, got {0}".format(type(extended)) + errMsg = "extended (optional) should be provided as bool" \ + ", got {0}".format(type(extended)) else: # For mode case - errMsg = "mode should be provided as str, got {0}".format(type(mode)) + errMsg = "mode (optional) should be provided as str, got {0}".format(type(mode)) raise TypeError(errMsg) # Sets an explain mode depending on a given argument