diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md index 5fc93056cd3..21069b43026 100644 --- a/docs/interpreter/spark.md +++ b/docs/interpreter/spark.md @@ -199,6 +199,10 @@ You can also set other Spark properties which are not listed in the table. For a false whether use yarn proxy url as spark weburl, e.g. http://localhost:8088/proxy/application_1583396598068_0004 + spark.repl.target + jvm-1.8 + Manually specifying the Java version of Spark Interpreter Scala REPL,Available options:[jvm-1.5, jvm-1.6, jvm-1.7, jvm-1.8] + Without any configuration, Spark interpreter works out of box in local mode. But if you want to connect to your Spark cluster, you'll need to follow below two simple steps. diff --git a/spark/scala-2.10/src/main/scala/org/apache/zeppelin/spark/SparkScala210Interpreter.scala b/spark/scala-2.10/src/main/scala/org/apache/zeppelin/spark/SparkScala210Interpreter.scala index 0eac20096a6..f59f13722a1 100644 --- a/spark/scala-2.10/src/main/scala/org/apache/zeppelin/spark/SparkScala210Interpreter.scala +++ b/spark/scala-2.10/src/main/scala/org/apache/zeppelin/spark/SparkScala210Interpreter.scala @@ -67,10 +67,13 @@ class SparkScala210Interpreter(override val conf: SparkConf, sparkHttpServer = server conf.set("spark.repl.class.uri", uri) } + val target = conf.get("spark.repl.target", "jvm-1.8") val settings = new Settings() settings.embeddedDefaults(sparkInterpreterClassLoader) settings.usejavacp.value = true + settings.target.value = target + this.userJars = getUserJars() LOGGER.info("UserJars: " + userJars.mkString(File.pathSeparator)) settings.classpath.value = userJars.mkString(File.pathSeparator) diff --git a/spark/scala-2.11/src/main/scala/org/apache/zeppelin/spark/SparkScala211Interpreter.scala b/spark/scala-2.11/src/main/scala/org/apache/zeppelin/spark/SparkScala211Interpreter.scala index cb5a016d40d..d2fb971bb62 100644 --- a/spark/scala-2.11/src/main/scala/org/apache/zeppelin/spark/SparkScala211Interpreter.scala +++ b/spark/scala-2.11/src/main/scala/org/apache/zeppelin/spark/SparkScala211Interpreter.scala @@ -66,12 +66,14 @@ class SparkScala211Interpreter(override val conf: SparkConf, sparkHttpServer = server conf.set("spark.repl.class.uri", uri) } + val target = conf.get("spark.repl.target", "jvm-1.8") val settings = new Settings() settings.processArguments(List("-Yrepl-class-based", "-Yrepl-outdir", s"${outputDir.getAbsolutePath}"), true) settings.embeddedDefaults(sparkInterpreterClassLoader) settings.usejavacp.value = true + settings.target.value = target this.userJars = getUserJars() LOGGER.info("UserJars: " + userJars.mkString(File.pathSeparator)) diff --git a/spark/scala-2.12/src/main/scala/org/apache/zeppelin/spark/SparkScala212Interpreter.scala b/spark/scala-2.12/src/main/scala/org/apache/zeppelin/spark/SparkScala212Interpreter.scala index 2b04a1d360b..7f3512522f2 100644 --- a/spark/scala-2.12/src/main/scala/org/apache/zeppelin/spark/SparkScala212Interpreter.scala +++ b/spark/scala-2.12/src/main/scala/org/apache/zeppelin/spark/SparkScala212Interpreter.scala @@ -60,12 +60,15 @@ class SparkScala212Interpreter(override val conf: SparkConf, LOGGER.info("Scala shell repl output dir: " + outputDir.getAbsolutePath) outputDir.deleteOnExit() conf.set("spark.repl.class.outputDir", outputDir.getAbsolutePath) + val target = conf.get("spark.repl.target", "jvm-1.8") val settings = new Settings() settings.processArguments(List("-Yrepl-class-based", "-Yrepl-outdir", s"${outputDir.getAbsolutePath}"), true) settings.embeddedDefaults(sparkInterpreterClassLoader) settings.usejavacp.value = true + settings.target.value = target + this.userJars = getUserJars() LOGGER.info("UserJars: " + userJars.mkString(File.pathSeparator)) settings.classpath.value = userJars.mkString(File.pathSeparator)