用AI在运行时导出环境变量

2024-09-30 01:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在将flow脚本转换为dagam之前,在bash中实现了flow脚本。在bash脚本中,我只是在运行时用

export HADOOP_CONF_DIR="/etc/hadoop/conf"

现在我也想在气流中做同样的事情,但还没有找到解决办法。我发现的一个解决方法是在任何方法或运算符之外使用os.environ[VAR_NAME]='some_text'设置变量,但这意味着它们在加载脚本时就被导出,而不是在运行时。在

现在,当我试图在pythonooperator调用的函数中调用os.environ[VAR_NAME] = 'some_text'时,它不起作用。我的代码是这样的

^{pr2}$

当我的SparkSubmito操作符被执行时,我得到了一个异常:

Exception in thread "main" java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.

与此相关的用例是我有SparkSubmitOperator,在这里我向YARN提交作业,因此必须在环境中设置HADOOP_CONF_DIR或{}。很遗憾,在我的.bashrc或任何其他配置中设置它们对我来说都是不可能的,这就是为什么我需要在运行时设置它们。在

最好我希望在执行SparkSubmitOperator之前在操作符中设置它们,但是如果有可能将它们作为参数传递给SparkSubmitOperator,那至少应该是这样。在


Tags: 方法textname脚本bashhadooposvar

热门问题