0

我试图使用不同的构建器来构建 SparkSession,而AmmoniteSparkSession需要 repl。

这不起作用,我认为这是因为 repl 是编译时错误。

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

1 回答 1

1

由于是编译时,我们必须使用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)
@
于 2020-03-06T07:46:50.210 回答