为 Spark worker 设置 python 路径
Set python path for Spark worker
为 Python 工作节点设置 sys 路径的“正确”方法是什么?
工作节点从主节点“继承”sys 路径是个好主意吗?
通过 .bashrc
在工作节点中设置路径是个好主意吗?或者是否有一些标准的 Spark 设置方式?
设置环境变量(包括PYSPARK_PYTHON
)的标准方法是使用conf/spark-env.sh
文件。 Spark 附带一个模板文件 (conf/spark-env.sh.template
),其中解释了最常见的选项。
这是一个普通的 bash 脚本,因此您可以像使用 .bashrc
一样使用它
您将在 Spark Configuration Guide 中找到更多详细信息。
通过以下代码,您可以仅为当前作业更改 python 路径,这也允许驱动程序和执行程序使用不同的 python 路径:
PYSPARK_DRIVER_PYTHON=/home/user1/anaconda2/bin/python PYSPARK_PYTHON=/usr/local/anaconda2/bin/python pyspark --master ..
我的案例错误是:
Exception: Python in worker has different version 2.6 than that in
driver 2.7, PySpark cannot run with different minor versions
有帮助的解决方案:
export PYSPARK_PYTHON=python2.7
export PYSPARK_DRIVER_PYTHON=python2.7
jupyter notebook
当然,我在工人本地安装了python2.7。
我想设置 PATH 也很重要。
我不依赖当地工人的设置。该路径继承自设置 jupyter-notebook 所在的边缘节点。
您可以执行以下任一操作 -
在配置中,
更新 SPARK_HOME/conf/spark-env.sh
,添加以下行:
# for pyspark
export PYSPARK_PYTHON="path/to/python"
# for driver, defaults to PYSPARK_PYTHON
export PYSPARK_DRIVER_PYTHON="path/to/python"
或
在代码中,添加:
import os
# Set spark environments
os.environ['PYSPARK_PYTHON'] = 'path/to/python'
os.environ['PYSPARK_DRIVER_PYTHON'] = 'path/to/python'
为 Python 工作节点设置 sys 路径的“正确”方法是什么?
工作节点从主节点“继承”sys 路径是个好主意吗?
通过 .bashrc
在工作节点中设置路径是个好主意吗?或者是否有一些标准的 Spark 设置方式?
设置环境变量(包括PYSPARK_PYTHON
)的标准方法是使用conf/spark-env.sh
文件。 Spark 附带一个模板文件 (conf/spark-env.sh.template
),其中解释了最常见的选项。
这是一个普通的 bash 脚本,因此您可以像使用 .bashrc
您将在 Spark Configuration Guide 中找到更多详细信息。
通过以下代码,您可以仅为当前作业更改 python 路径,这也允许驱动程序和执行程序使用不同的 python 路径:
PYSPARK_DRIVER_PYTHON=/home/user1/anaconda2/bin/python PYSPARK_PYTHON=/usr/local/anaconda2/bin/python pyspark --master ..
我的案例错误是:
Exception: Python in worker has different version 2.6 than that in driver 2.7, PySpark cannot run with different minor versions
有帮助的解决方案:
export PYSPARK_PYTHON=python2.7
export PYSPARK_DRIVER_PYTHON=python2.7
jupyter notebook
当然,我在工人本地安装了python2.7。
我想设置 PATH 也很重要。
我不依赖当地工人的设置。该路径继承自设置 jupyter-notebook 所在的边缘节点。
您可以执行以下任一操作 -
在配置中,
更新 SPARK_HOME/conf/spark-env.sh
,添加以下行:
# for pyspark
export PYSPARK_PYTHON="path/to/python"
# for driver, defaults to PYSPARK_PYTHON
export PYSPARK_DRIVER_PYTHON="path/to/python"
或
在代码中,添加:
import os
# Set spark environments
os.environ['PYSPARK_PYTHON'] = 'path/to/python'
os.environ['PYSPARK_DRIVER_PYTHON'] = 'path/to/python'