1

我有一个应用程序,它可以通过文件获取工作配置信息(可能有几十个文件,每个文件都描述了应用程序要完成的特定工作,最好是灵活地确定它们的位置),为此我们选择了 HOCON 格式和类型安全库。

它在从资源文件夹进行开发加载时效果很好,但目的是在运行时通过参数传递这些配置文件的路径,同时调用 spark-submit (spark-submit ... pathToFile ...)。

但是读取文件的路径失败并出现以下错误:

val jConfig = ConfigFactory.load(path)

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

如何从 /resources 以外的其他位置读取配置文件?

解决方案

根据@hagarwal 提示,以下工作

val input = Source.fromFile(path,"UTF8").mkString
val jConfig = ConfigFactory.parseString(input)
4

1 回答 1

1

将配置存储在 HDFS/S3/ADFS/Local 文件系统中,将配置文件路径作为参数传递给程序,从配置文件路径中读取配置文件作为输入流(或文件)。

val confPath = args(0) //Configuration file path
val stream = Client.getObject(confPath) //Client -> HDFS/S3/ADFS/Local
val configString = Source.fromInputStream(stream.asInstanceOf[InputStream]).mkString
val config = ConfigFactory.parseString(configString)
于 2019-10-03T14:39:38.807 回答