diff --git a/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala b/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
index 1e0493c4855e0ac1a788ebeb1e82aae145edd538..a678355a1cfa08507b8515522683823bd10fa4de 100644
--- a/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
+++ b/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
@@ -112,6 +112,9 @@ class JavaSparkContext(val sc: SparkContext) extends JavaSparkContextVarargsWork
 
   def startTime: java.lang.Long = sc.startTime
 
+  /** The version of Spark on which this application is running. */
+  def version: String = sc.version
+
   /** Default level of parallelism to use when not given by user (e.g. parallelize and makeRDD). */
   def defaultParallelism: java.lang.Integer = sc.defaultParallelism
 
diff --git a/python/pyspark/context.py b/python/pyspark/context.py
index 024fb881877c9ffafbfdc52aa53bfe520c99ad6e..bdf14ea0ee27aeb019a9cc4753231af11c7a8a1d 100644
--- a/python/pyspark/context.py
+++ b/python/pyspark/context.py
@@ -216,6 +216,13 @@ class SparkContext(object):
         SparkContext._ensure_initialized()
         SparkContext._jvm.java.lang.System.setProperty(key, value)
 
+    @property
+    def version(self):
+        """
+        The version of Spark on which this application is running.
+        """
+        return self._jsc.version()
+
     @property
     def defaultParallelism(self):
         """