Как определить, запущен ли я под Ammonite Repl или в сценарии? - PullRequest
0 голосов
/ 06 марта 2020

Я пытался использовать разные компоновщики для создания SparkSession, а AmmoniteSparkSession требует repl.

Это не сработает, я думаю, это потому, что repl - ошибка времени компиляции.

val sparkSessionBuilder =
  try {
    repl
    AmmoniteSparkSession.builder
  } catch {
    case e: Exception => SparkSession.builder
  }

1 Ответ

0 голосов
/ 06 марта 2020

, поскольку это время компиляции, мы должны использовать Multi-stageScripts , чтобы загрузить другой скрипт в соответствии с контекстом. это должно работать что-то вроде здесь

val sparkSessionModule = sys.env.get("AMMONITE_REPL") match {
  case None => pwd / RelPath("libs/_SparkSession.sc")
  case Some(_) => pwd / RelPath("libs/_AmmoniteSparkSession.sc")
}
interp.load.module(sparkSessionModule)
@
...