我在 windows 中的 standalone spark 上遇到了同样的问题。
我的修复版本是这样的:
我的环境变量设置如下
PYSPARK_SUBMIT_ARGS="pyspark-shell"
PYSPARK_DRIVER_PYTHON=jupyter
PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark
使用此设置,我在 pyspark 上执行了一个操作并得到以下异常:
Python in worker has different version 3.6 than that in driver 3.5, PySpark cannot run with different minor versions.
Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
要检查我的 spark-worker 正在使用哪个 python 版本,请在 cmd 提示符中点击以下命令。
python --version
Python 3.6.3
向我展示了 Python 3.6.3。很明显,我的 spark-worker 使用的是 v3.6.3 的系统 python。
现在我通过设置 PYSPARK_DRIVER_PYTHON=jupyter 将我的 spark-driver 设置为运行 jupyter,所以我需要检查 jupyter 正在使用的 python 版本。
为此检查打开 Anaconda Prompt 并点击
python --version
Python 3.5.X :: Anaconda, Inc.
这里得到的 jupyter python 正在使用 v3.5.x。您也可以在任何笔记本中查看此版本(帮助->关于)。
现在我需要将 jupyter python 更新到版本 v3.6.6。为此,请打开 Anaconda Prompt 并点击
conda 搜索 python
这将为您提供 Anaconda 中可用的 python 版本列表。安装你想要的
conda install python=3.6.3
现在我有两个相同版本 3.6.3 Spark 的 Python 安装不符合要求,当我在 Spark-driver 上运行操作时也不符合要求。异常消失了。
快乐编码...