aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/context.py
diff options
context:
space:
mode:
authorMatthew Farrellee <matt@redhat.com>2014-09-09 18:54:54 -0700
committerReynold Xin <rxin@apache.org>2014-09-09 18:54:54 -0700
commit25b5b867d5e18bac1c5bcdc6f8c63d97858194c7 (patch)
treec89d169c2b6461d7d01eff0a6cbf61c3235acef0 /python/pyspark/context.py
parentc110614b33a690a3db6ccb1a920fb6a3795aa5a0 (diff)
downloadspark-25b5b867d5e18bac1c5bcdc6f8c63d97858194c7.tar.gz
spark-25b5b867d5e18bac1c5bcdc6f8c63d97858194c7.tar.bz2
spark-25b5b867d5e18bac1c5bcdc6f8c63d97858194c7.zip
[SPARK-3458] enable python "with" statements for SparkContext
allow for best practice code, ``` try: sc = SparkContext() app(sc) finally: sc.stop() ``` to be written using a "with" statement, ``` with SparkContext() as sc: app(sc) ``` Author: Matthew Farrellee <matt@redhat.com> Closes #2335 from mattf/SPARK-3458 and squashes the following commits: 5b4e37c [Matthew Farrellee] [SPARK-3458] enable python "with" statements for SparkContext
Diffstat (limited to 'python/pyspark/context.py')
-rw-r--r--python/pyspark/context.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/python/pyspark/context.py b/python/pyspark/context.py
index 5a30431568..84bc0a3b7c 100644
--- a/python/pyspark/context.py
+++ b/python/pyspark/context.py
@@ -232,6 +232,20 @@ class SparkContext(object):
else:
SparkContext._active_spark_context = instance
+ def __enter__(self):
+ """
+ Enable 'with SparkContext(...) as sc: app(sc)' syntax.
+ """
+ return self
+
+ def __exit__(self, type, value, trace):
+ """
+ Enable 'with SparkContext(...) as sc: app' syntax.
+
+ Specifically stop the context on exit of the with block.
+ """
+ self.stop()
+
@classmethod
def setSystemProperty(cls, key, value):
"""