如何读取 spark, spring 应用程序中具有给定前缀的所有属性文件?

How to read all the properties files with given prefix in spark, spring application?

我正在用 spark 和 scala 开发应用程序并使用 spring 读取配置文件。

我的环境特定文件在该目录中可用,如下所示

src/main/resource/DEV

      mms_kafka.properties

      mms_app.properties

      pps_kafka.properties

      pps_app.properties

和src/main/resoruce下的常用文件如下

src/main/resource

mmsmappings.properties 

ppsmappings.properties

目前,我正在做如下并且工作正常

@PropertySource(value = Array("classpath:${ENV}/mms_app.properties","classpath:${ENV}/mms_kafka.properties","classpath:$mmsmapping.properties"), ignoreResourceNotFound=false)

Spark submit command: spark2-submit --master yarn --deploy-mode client --class job.Driver --conf 'spark.driver.extraJavaOptions=-DENV=DEV' --driver-memory 4g --executor-memory 16g --num-executors 4 --executor-cores 4  temp-0.0.1-shaded.jar 

但我想读取特定前缀 (mms/pps) 的所有文件,如下所示,我试过了,但它给出了 ENV 并且 APP 占位符未解析

@PropertySource(value = Array("classpath:${ENV}/${APP}_app.properties","classpath:${ENV}/${APP}_kafka.properties","classpath:${APP}mapping.properties"), ignoreResourceNotFound=false)


Spark submit command: spark2-submit --master yarn --deploy-mode client --class job.Driver --conf 'spark.driver.extraJavaOptions=-DENV=DEV' --conf 'spark.driver.extraJavaOptions=-DAPP=mms' --driver-memory 4g --executor-memory 16g --num-executors 4 --executor-cores 4  temp-0.0.1-shaded.jar

我应该如何解决这个问题?

我通过在 spark 作业中传递参数解决了这个问题,如下所示

spark2-submit --master yarn --deploy-mode client --class com.job.Driver --conf 'spark.driver.extraJavaOptions=-DENV=DEV -DAPP=mms' --driver-memory 4g --executor-memory 16g --num-executors 4  --executor-cores 4 test.jar