Java 无法在Spark应用程序中设置环境变量

Java 无法在Spark应用程序中设置环境变量,java,apache-spark,environment-variables,emr,Java,Apache Spark,Environment Variables,Emr,我正在尝试为我的spark应用程序设置环境变量,在本地模式下运行 以下是spark提交作业:- spark-submit --conf spark.executorEnv.FOO=bar --class com.amazon.Main SWALiveOrderModelSpark-1.0-super.jar 但是,当我尝试访问此文件时:- System.out.println("env variable:- " + System.getenv("FOO")); 输出为:- env varia

我正在尝试为我的spark应用程序设置环境变量,在本地模式下运行

以下是spark提交作业:-

spark-submit --conf spark.executorEnv.FOO=bar --class com.amazon.Main SWALiveOrderModelSpark-1.0-super.jar
但是,当我尝试访问此文件时:-

System.out.println("env variable:- " + System.getenv("FOO"));
输出为:-

env variable:- null

有人知道我如何解决这个问题吗?

您正在使用
SparkConf
设置Spark环境变量。您还必须使用
SparkConf
来获取它

sc.getConf.get("spark.executorEnv.FOO")

spark.ExecuteEnv.[EnvironmentVariableName]
(强调我的):

将EnvironmentVariableName指定的环境变量添加到执行器进程中

它在驱动程序上不可见,不包括
org.apache.spark.SparkConf
。要使用
System.getenv
访问它,必须在正确的上下文中执行,例如从任务:

sc.range(0, 1).map(_ => System.getenv("FOO")).collect.foreach(println)