我试图使用不同的构建器来构建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)
@