gui*_*cgs 5 pythonpath apache-spark pyspark
是否有可能在火花中向工人的PYTHONPATH追加一个值?
我知道可以去每个工作节点,配置spark-env.sh文件并执行它,但我想要一个更灵活的方法
我试图使用setExecutorEnv方法,但没有成功
conf = SparkConf().setMaster("spark://192.168.10.11:7077")\
.setAppName(''myname')\
.set("spark.cassandra.connection.host", "192.168.10.11") /
.setExecutorEnv('PYTHONPATH', '$PYTHONPATH:/custom_dir_that_I_want_to_append/')
Run Code Online (Sandbox Code Playgroud)
它在每个执行程序上创建一个pythonpath env.variable,强制它为lower_case,并且不解释$ PYTHONPATH命令以追加该值.
我最终得到了两个不同的env.variables,
pythonpath : $PYTHONPATH:/custom_dir_that_I_want_to_append
PYTHONPATH : /old/path/to_python
Run Code Online (Sandbox Code Playgroud)
第一个是动态创建的,第二个之前已经存在过.
有谁知道怎么做?
我想通了自己......
问题不在于spark,而是在ConfigParser中
基于这个答案,我修复了ConfigParser以始终保留大小写.
在此之后,我发现默认的spark行为是将值附加到现有的worker env.variables,如果有一个具有相同名称的env.variable.
因此,没有必要在美元符号内提及$ PYTHONPATH.
.setExecutorEnv('PYTHONPATH', '/custom_dir_that_I_want_to_append/')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |