【问题标题】: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)
    @
    

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2020-03-31
      • 2010-11-09
      • 2011-04-18
      • 1970-01-01
      • 2019-03-01
      • 2023-03-07
      • 2011-12-14
      • 1970-01-01
      相关资源
      最近更新 更多