我正在尝试为我的火花应用程序设置环境变量,以本地模式运行。
这是火花提交工作: -
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
有谁知道如何解决这个问题?
答案 0 :(得分:2)
spark.executorEnv.[EnvironmentVariableName]
is used to(强调我的):
将EnvironmentVariableName指定的环境变量添加到执行者进程。
除了org.apache.spark.SparkConf
之外,它在驱动程序中不可见。要使用System.getenv
访问它,您可以在正确的上下文中执行此操作,例如从任务:
sc.range(0, 1).map(_ => System.getenv("FOO")).collect.foreach(println)
bar
答案 1 :(得分:1)
您正在使用 <map name="surname" type="Sitecore.Owin.Authentication.Services.DefaultClaimToPropertyMapper, Sitecore.Owin.Authentication" resolve="true">
<data hint="raw:AddData">
<source name="surname" />
<target name="Surname" />
</data>
</map>
设置Spark环境变量。您还必须使用user.Profile["Surname"]
来获取它
SparkConf