Загрузка безопасных типов в формате HOCON из пользовательских мест во время выполнения - PullRequest
0 голосов
/ 03 октября 2019

У меня есть приложение, которое будет получать информацию о конфигурации заданий через файлы (вероятно, их будет десятки, каждый из которых описывает конкретную работу, выполняемую приложением, предпочтительно гибко в отношении того, где они расположены), и для этого мы выбрали 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)

1 Ответ

1 голос
/ 03 октября 2019

Сохранение конфигурации в HDFS / S3 / ADFS / Локальной файловой системе, передача пути файла конфигурации к программе в качестве аргумента, чтение файла конфигурации в качестве входного потока (или файла) из пути к файлу конфигурации.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...