如何判断我是在Ammonite repl下运行还是在脚本中运行



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

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

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

由于是编译时,我们必须使用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)
@

相关内容

最新更新