我正在用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
我该如何解决?
答案 0 :(得分:0)
我通过在如下所示的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