当我在集群模式下运行它时,我正在寻找一个解决方案来在pyspark代码中获取Unix导出的变量。 我使用os.getenv得到了一个解决方案,但这对我来说不适用于集群模式。在本地模式下它工作正常。
有没有其他方法可以一次性替换完整的变量集。传递n个参数并读取它们有点开销。
答案 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()