Github user dongjoon-hyun commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21495#discussion_r193919141
  
    --- Diff: 
repl/scala-2.11/src/main/scala/org/apache/spark/repl/SparkILoopInterpreter.scala
 ---
    @@ -21,8 +21,22 @@ import scala.collection.mutable
     import scala.tools.nsc.Settings
     import scala.tools.nsc.interpreter._
     
    -class SparkILoopInterpreter(settings: Settings, out: JPrintWriter) extends 
IMain(settings, out) {
    -  self =>
    +class SparkILoopInterpreter(settings: Settings, out: JPrintWriter, 
initializeSpark: () => Unit)
    +    extends IMain(settings, out) { self =>
    +
    +  /**
    +   * We override `initializeSynchronous` to initialize Spark *after* 
`intp` is properly initialized
    +   * and *before* the REPL sees any files in the private `loadInitFiles` 
functions, so that
    +   * the Spark context is visible in those files.
    +   *
    +   * This is a bit of a hack, but there isn't another hook available to us 
at this point.
    +   *
    +   * See the discussion in Scala community 
https://github.com/scala/bug/issues/10913 for detail.
    +   */
    +  override def initializeSynchronous(): Unit = {
    +    super.initializeSynchronous()
    +    initializeSpark()
    --- End diff --
    
    For my environment, I'm hitting `NoSuchMethodError` like the following. Did 
you see something like this?
    
    ```scala
    ~/PR-21495:PR-21495$ bin/spark-shell
    18/06/07 23:39:00 WARN NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
    Using Spark's default log4j profile: 
org/apache/spark/log4j-defaults.properties
    Setting default log level to "WARN".
    To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use 
setLogLevel(newLevel).
    Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /___/ .__/\_,_/_/ /_/\_\   version 2.4.0-SNAPSHOT
          /_/
    
    Using Scala version 2.11.12 (OpenJDK 64-Bit Server VM, Java 1.8.0_171)
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> Spark context Web UI available at http://localhost:4040
    Spark context available as 'sc' (master = local[*], app id = 
local-1528414746558).
    Spark session available as 'spark'.
    Exception in thread "main" java.lang.NoSuchMethodError: 
jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion(Z)V
            at 
scala.tools.nsc.interpreter.jline.JLineConsoleReader.initCompletion(JLineReader.scala:139)
            at 
scala.tools.nsc.interpreter.jline.InteractiveReader.postInit(JLineReader.scala:54)
    ```


---

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

Reply via email to