Ваш application.conf
по умолчанию должен присутствовать в корне classpath для ConfigFactory.load()
, чтобы найти его. Кроме того, вы можете изменить, где найти файл application.conf
через системные свойства. Поэтому ваши варианты следующие.
Первый вариант - добавить корневой каталог задания в classpath:
spark2-submit ... \
--conf spark.driver.extraClassPath=./ \
--conf spark.executor.extraClassPath=./ \ // if you need to load config at executors
...
Оставьте параметр --files
как есть. Обратите внимание, что если вы выполняете свою работу в режиме клиента, вы должны передать правильный путь к расположению application.conf
на компьютере-драйвере к параметру spark.driver.extraClassPath
.
Второй вариант (и я думаю, что этот вариант лучше), вы можете использовать системное свойство config.file
, чтобы указать, где ConfigFactory.load()
ищет файл конфигурации:
spark2-submit ... \
--conf spark.driver.extraJavaOptions=-Dconfig.file=./application.conf \
--conf spark.executor.extraJavaOptions=-Dconfig.file=./application.conf \
...
Замечания о загрузке конфигурации на исполнителей и сохранении опции --files
также применимы здесь.