У меня есть jar, который я запускаю через spark-submit, и раньше я использовал Argot для анализа файла конфигурации HOCON, который был проанализирован через ConfigFactory, а затем я прочитал оттуда.
* spark/bin/spark-submit --class ConsumerApp \
* --master local[2] \
* some-consumer-jar-0.1.0.jar \
* --config config.hocon
К сожалению, Argot сейчас мертвый проект, и для обновления до текущей версии Scala мне нужно начать использовать Scopt, но у меня возникают проблемы с пониманием того, как я могу проанализировать тот же файл конфигурации с помощью Scopt и загрузить его в ConfigFactory, не внося слишком много изменений.
Попробовал прочитать документацию, но не смог найти много.
текущая реализация
def main(args: Array[String]) {
// General bumf for our app
val parser = new ArgotParser(
programName = "generated",
compactUsage = true,
preUsage = Some("%s: Version %s, %s.".format(
generated.Settings.name,
generated.Settings.version,
generated.Settings.organization)
)
)
// Optional config argument
val config = parser.option[Config](List("config"),
"filename",
"Configuration file.") {
(c, opt) =>
val file = new File(c)
if (file.exists) {
ConfigFactory.parseFile(file)
} else {
parser.usage("Configuration file \"%s\" does not exist".format(c))
ConfigFactory.empty()
}
}
parser.parse(args)
// read the config file if --config parameter is provided else fail
val conf = config.value.getOrElse(throw new RuntimeException("--config argument must be provided"))
, а затем прочитал вот так
arg1 = conf.getConfig("somelevel").getString("arg1"),