【问题标题】:spark-shell load scala config using typesafe configspark-shell 使用类型安全配置加载 scala 配置
【发布时间】:2019-07-24 10:01:59
【问题描述】:

我正在尝试使用 typesafe-config 在 spark-shell 中加载 application.conf

以下是代码和spark-shell命令:

scala 代码:

import com.typesafe.config.{Config, ConfigFactory}

val config: Config = ConfigFactory.load("application.conf")
val env = config.getString("key.key1")

spark-shell 命令

  • spark-shell --jars confing-1.3.4.jar --files application.conf --driver-java-options -Dconfig.file=application.conf(尝试 1)
  • spark-shell --jars confing-1.3.4.jar (attempt 2)

application.conf:

key {

 key1 = "value1"

}

错误:

com.typesafe.config.ConfigException$Missing: system properties: No configuration setting found for key 'key'

【问题讨论】:

标签: scala apache-spark typesafe-config


【解决方案1】:

您的 conf 文件在哪里?您是否尝试使用根目录的完整路径? 例如:

val config: Config = ConfigFactory.load("/<root-path>/application.conf")

【讨论】:

    【解决方案2】:

    您可以通过--files "application.conf" 将文件传递给每个执行程序,并使用ConfigFactory.parseFile() 作为读取

    你可以通过--filesSparkFiles.get获取文件

    import com.typesafe.config.ConfigFactory
    import java.io.File
    import org.apache.spark.SparkFiles
    
    val config = ConfigFactory.parseFile(new File(SparkFiles.get("application.conf")))
    

    这应该会加载你想要的配置。

    【讨论】:

    • 谢谢,@Shankar。这是将 application.conf 路径带到 hdfs 中不存在的 /tmp..... 位置。它返回错误“路径不存在”
    猜你喜欢
    • 2013-08-14
    • 2020-04-24
    • 2017-03-23
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    相关资源
    最近更新 更多