我在我的Spark应用程序中定义了一个隐藏在src/main/resources/reference.conf
中的默认配置。我使用ConfigFactory.load()
来获取配置。
当我使用spark-submit
运行应用程序时,它会选择这些默认值。但是,当我只想覆盖reference.conf
中提供的一些配置并提供application.conf
时,它似乎无法获取这些覆盖。从文档中我认为application.conf
在调用reference.conf
时与load()
合并,因此无需重新定义application.conf
中的所有内容。
我的reference.conf
看起来像这样:
hdfs {
rootDir: "/foo"
dataDir: "hdfs://"${hdfs.rootDir}"/bar"
}
db {
driver: "com.mysql.jdbc.Driver"
...
}
...
我现在想要做的是application.conf
只有一个自定义hdfs
部分,因为其余部分是相同的。
我通过在application.conf
参数,--files
和--driver-class-path
中提供--conf spark.executor.extraClassPath
来运行我的Spark应用。这可能有点矫枉过正,但是当我创建reference.conf
的副本并更改一些字段时它会起作用。
我错过了什么?