This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.2.0
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.2.0 by this push:
     new c755a1e2c scala version (#2405)
c755a1e2c is described below

commit c755a1e2c0deafff9c9c1cd4fc0a60bfe61de3f6
Author: gabeng1996 <[email protected]>
AuthorDate: Sun Jul 3 22:18:13 2022 +0800

    scala version (#2405)
---
 .../linkis/engineplugin/spark/config/SparkConfiguration.scala  |  1 +
 .../engineplugin/spark/executor/SparkScalaExecutor.scala       | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/config/SparkConfiguration.scala
 
b/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/config/SparkConfiguration.scala
index ca4311ded..f2bf3e62a 100644
--- 
a/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/config/SparkConfiguration.scala
+++ 
b/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/config/SparkConfiguration.scala
@@ -34,6 +34,7 @@ object SparkConfiguration extends Logging {
   val SPARK_LOOP_INIT_TIME = 
CommonVars[TimeType]("wds.linkis.engine.spark.spark-loop.init.time", new 
TimeType("120s"))
   val SPARK_LANGUAGE_REPL_INIT_TIME = 
CommonVars[TimeType]("wds.linkis.engine.spark.language-repl.init.time", new 
TimeType("30s"))
   val SPARK_REPL_CLASSDIR = CommonVars[String]("spark.repl.classdir", "", 
"默认master")
+  val SPARK_SCALA_VERSION = CommonVars("linkis.spark.scala.version", "2.11")
 
 
   val PROXY_USER = CommonVars[String]("spark.proxy.user", "${UM}")
diff --git 
a/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkScalaExecutor.scala
 
b/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkScalaExecutor.scala
index 938a0935a..a78418798 100644
--- 
a/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkScalaExecutor.scala
+++ 
b/linkis-engineconn-plugins/engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkScalaExecutor.scala
@@ -257,7 +257,10 @@ class SparkScalaExecutor(sparkEngineSession: 
SparkEngineSession, id: Long) exten
     sparkILoop.settings = settings
     sparkILoop.createInterpreter()
 
-    val in0 = getField(sparkILoop, 
"scala$tools$nsc$interpreter$ILoop$$in0").asInstanceOf[Option[BufferedReader]]
+    val in0 = SparkConfiguration.SPARK_SCALA_VERSION.getValue match {
+      case "2.11" => getField(sparkILoop, 
"scala$tools$nsc$interpreter$ILoop$$in0").asInstanceOf[Option[BufferedReader]]
+      case "2.12" => getDeclareField(sparkILoop, 
"in0").asInstanceOf[Option[BufferedReader]]
+    }
     val reader = in0.fold(sparkILoop.chooseReader(settings))(r => 
SimpleReader(r,
       jOut, interactive = true))
 
@@ -271,6 +274,11 @@ class SparkScalaExecutor(sparkEngineSession: 
SparkEngineSession, id: Long) exten
     field.setAccessible(true)
     field.get(obj)
   }
+  private def getDeclareField(obj: Object, name: String): Object = {
+    val field = obj.getClass.getDeclaredField(name)
+    field.setAccessible(true)
+    field.get(obj)
+  }
 
   def bindSparkSession = {
     require(sparkContext != null)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to