首页 > 解决方案 > 在 spark/Scala 中读取配置文件时未找到密钥配置

问题描述

您好我正在尝试从我的配置文件中读取配置spark/scala

我写在下面的代码。

val conf = com.typesafe.config.ConfigFactory.load(args(0))
var url=conf.getString("parameters.spark-hive.url")
var db=conf.getString("parameters.spark-hive.dbname")
val sparksession = SparkSession.builder()
  .appName("myapp")
  .config("spark.sql.hive.hiveserver2.jdbc.url",url)
  .enableHiveSupport()
  .getOrCreate()

下面是我的application.conf文件(src/main/resources/application.conf

parameters {
  spark-hive {
  url = """jdbc://xxxxxxxxxxxx""",
  dbname =   """bdname"""
  }
}

并使用以下Spark-submit命令:

spark-submit \
> --conf "spark.executor.extraClassPath=-Dconfig.file=application.conf"\
> --verbose \
> --class classjarname \
> project_jar
> /path/config-1.2.0.jar \
> /path/application.conf

但低于错误。

Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'parameters' Note:-I'm genetarting Jar using Maven and using HDP 3.X

标签: scalaapache-spark

解决方案


您可以打印出实际值args(0)以查看(完整)路径所指的位置。这对我有用:

com.typesafe.config.ConfigFactory.parseFile(new java.io.File(args(0)))

补充说明:

  • 不确定project_jar您的提交命令中的含义
  • 构建 SparkSession 时的代码似乎hive-url与您的配置不匹配。

推荐阅读