【问题标题】:How to tell whether i am running under Ammonite repl or in a script?如何判断我是在 Ammonite repl 下运行还是在脚本中运行?
【发布时间】:2020-06-18 19:37:05
【问题描述】:
我试图使用不同的构建器来构建 SparkSession,而AmmoniteSparkSession 需要 repl。
这行不通,我认为是因为 repl 是编译时错误。
val sparkSessionBuilder =
try {
repl
AmmoniteSparkSession.builder
} catch {
case e: Exception => SparkSession.builder
}
【问题讨论】:
标签:
scala
apache-spark
ammonite
【解决方案1】:
由于是编译时,我们必须使用Multi-stageScripts根据上下文加载不同的脚本。它应该像here
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)
@