aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/context.py
diff options
context:
space:
mode:
authorDavies Liu <davies@databricks.com>2015-10-19 16:18:20 -0700
committerAndrew Or <andrew@databricks.com>2015-10-19 16:18:20 -0700
commit232d7f8d42950431f1d9be2a6bb3591fb6ea20d6 (patch)
tree38abfac2a3d362fb4f8e62cc91d57791c6370ad3 /python/pyspark/context.py
parenta1413b3662250dd5e980e8b1f7c3dc4585ab4766 (diff)
downloadspark-232d7f8d42950431f1d9be2a6bb3591fb6ea20d6.tar.gz
spark-232d7f8d42950431f1d9be2a6bb3591fb6ea20d6.tar.bz2
spark-232d7f8d42950431f1d9be2a6bb3591fb6ea20d6.zip
[SPARK-11114][PYSPARK] add getOrCreate for SparkContext/SQLContext in Python
Also added SQLContext.newSession() Author: Davies Liu <davies@databricks.com> Closes #9122 from davies/py_create.
Diffstat (limited to 'python/pyspark/context.py')
-rw-r--r--python/pyspark/context.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/python/pyspark/context.py b/python/pyspark/context.py
index 4969d85f52..afd74d937a 100644
--- a/python/pyspark/context.py
+++ b/python/pyspark/context.py
@@ -21,7 +21,7 @@ import os
import shutil
import signal
import sys
-from threading import Lock
+from threading import RLock
from tempfile import NamedTemporaryFile
from pyspark import accumulators
@@ -65,7 +65,7 @@ class SparkContext(object):
_jvm = None
_next_accum_id = 0
_active_spark_context = None
- _lock = Lock()
+ _lock = RLock()
_python_includes = None # zip and egg files that need to be added to PYTHONPATH
PACKAGE_EXTENSIONS = ('.zip', '.egg', '.jar')
@@ -280,6 +280,18 @@ class SparkContext(object):
"""
self.stop()
+ @classmethod
+ def getOrCreate(cls, conf=None):
+ """
+ Get or instantiate a SparkContext and register it as a singleton object.
+
+ :param conf: SparkConf (optional)
+ """
+ with SparkContext._lock:
+ if SparkContext._active_spark_context is None:
+ SparkContext(conf=conf or SparkConf())
+ return SparkContext._active_spark_context
+
def setLogLevel(self, logLevel):
"""
Control our logLevel. This overrides any user-defined log settings.