Pyspark:有没有办法在python代码中使用Unix导出的变量

时间:2017-09-11 02:16:25

标签: python unix pyspark

当我在集群模式下运行它时,我正在寻找一个解决方案来在pyspark代码中获取Unix导出的变量。 我使用os.getenv得到了一个解决方案,但这对我来说不适用于集群模式。在本地模式下它工作正常。

有没有其他方法可以一次性替换完整的变量集。传递n个参数并读取它们有点开销。

1 个答案:

答案 0 :(得分:0)

对于群集模式,您应该使用名为spark.yarn.appMasterEnv.XXX的spark配置将变量传递给驱动程序。您可以在documentation

中找到更多信息

但是,我并不认为环境变量是处理参数的最佳方式。你是关于optparse图书馆的吗?它附带所有python发行版(2.X和3.X),并允许您以非常简单的方式解析参数,如:

from optparse import OptionParser
parser = OptionParser()
parser.add_option("-i", "--input-file", default="hdfs:///some/input/file.csv")
parser.add_option("-o", "--output-dir", default= "hdfs:///tmp/output")
parser.add_option("-l", "--log-level", default='INFO')

(options, args) = parser.parse_args()