From dfd4c3b80b52f906b6892e7004fa139ea1337c20 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 17 Apr 2017 13:06:31 -0700 Subject: [PATCH 1/4] [SPARK-20360][PYTHON] Create _repr_html_ for SparkContext --- python/pyspark/context.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/python/pyspark/context.py b/python/pyspark/context.py index 2961cda553d6..3585c072ab2a 100644 --- a/python/pyspark/context.py +++ b/python/pyspark/context.py @@ -240,6 +240,20 @@ def signal_handler(signal, frame): if isinstance(threading.current_thread(), threading._MainThread): signal.signal(signal.SIGINT, signal_handler) + def _repr_html_(self): + return """ +
+

Spark Context

+ +
+ """.format( + spark_version=self.version, + spark_ui_url=self.uiWebUrl, + ) + def _initialize_context(self, jconf): """ Initialize SparkContext in function to allow subclass specific initialization From 1c6008771227db978a312751c315e47546efd15a Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 17 Apr 2017 14:44:20 -0700 Subject: [PATCH 2/4] [SPARK-20360][PYTHON] REPResent SparkContext --- python/pyspark/context.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/pyspark/context.py b/python/pyspark/context.py index 3585c072ab2a..827162d707a9 100644 --- a/python/pyspark/context.py +++ b/python/pyspark/context.py @@ -240,6 +240,12 @@ def signal_handler(signal, frame): if isinstance(threading.current_thread(), threading._MainThread): signal.signal(signal.SIGINT, signal_handler) + def __repr__(self): + return "".format( + master=self.master, + appName=self.appName, + ) + def _repr_html_(self): return """
From a2acd97a608c688c3f55606ac1afa8c1c89a2886 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 17 Apr 2017 15:44:39 -0700 Subject: [PATCH 3/4] [SPARK-20360][PYTHON] Cleaner SparkContext HTML --- python/pyspark/context.py | 20 +++++++++++++------- python/pyspark/sql/session.py | 3 +++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/python/pyspark/context.py b/python/pyspark/context.py index 827162d707a9..3be07325f416 100644 --- a/python/pyspark/context.py +++ b/python/pyspark/context.py @@ -249,15 +249,21 @@ def __repr__(self): def _repr_html_(self): return """
-

Spark Context

- +

SparkContext

+ +

Spark UI

+ +
+
Version
+
v{sc.version}
+
Master
+
{sc.master}
+
AppName
+
{sc.appName}
+
""".format( - spark_version=self.version, - spark_ui_url=self.uiWebUrl, + sc=self ) def _initialize_context(self, jconf): diff --git a/python/pyspark/sql/session.py b/python/pyspark/sql/session.py index 9f4772eec9f2..ad1819b50cd7 100644 --- a/python/pyspark/sql/session.py +++ b/python/pyspark/sql/session.py @@ -221,6 +221,9 @@ def __init__(self, sparkContext, jsparkSession=None): or SparkSession._instantiatedSession._sc._jsc is None: SparkSession._instantiatedSession = self + def _repr_html_(self): + return self.sparkContext._repr_html_() + @since(2.0) def newSession(self): """ From 75c988063fe306930dfa1e45bca26cbfe4f1e575 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 17 Apr 2017 16:43:11 -0700 Subject: [PATCH 4/4] [SPARK-20360][PYTHON] Provide catalogImplementation in output --- python/pyspark/sql/session.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/python/pyspark/sql/session.py b/python/pyspark/sql/session.py index ad1819b50cd7..c1bf2bd76fb7 100644 --- a/python/pyspark/sql/session.py +++ b/python/pyspark/sql/session.py @@ -222,7 +222,15 @@ def __init__(self, sparkContext, jsparkSession=None): SparkSession._instantiatedSession = self def _repr_html_(self): - return self.sparkContext._repr_html_() + return """ +
+

SparkSession - {catalogImplementation}

+ {sc_HTML} +
+ """.format( + catalogImplementation=self.conf.get("spark.sql.catalogImplementation"), + sc_HTML=self.sparkContext._repr_html_() + ) @since(2.0) def newSession(self):