Ubuntu下,在pycharm中执行spark程序,出现如下异常信息:
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/home/z/module/spark-2.3.1-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/worker.py", line 176, in main
("%d.%d" % sys.version_info[:2], version))
Exception: Python in worker has different version 2.7 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.
pycharm中,配置的Python版本为anaconda环境下的Python3.5。同时,普通用户登录ubuntu,默认Python版本为anaconda python 3.5。
解决办法:
修改系统级默认Python版本为3.5
1.以 root 身份登录,查看默认Python版本:
z@python:~$ sudo su
root@python:/home/z# python --version
Python 2.7.12
2.首先罗列出所有可用的 python 替代版本信息:
update-alternatives --list python
提示:update-alternatives: error: no alternatives for python
如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 update-alternatives
命令识别。想解决这个问题,我们需
要更新一下替代列表,将 python2.7
和 python3.5
放入其中,再选择Python3.5
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
提示:update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
提示:update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode
root@python:/home/z# update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.5
root@python:/home/z# update-alternatives --config python
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/bin/python3.5 2 自动模式
* 1 /usr/bin/python2.7 1 手动模式
2 /usr/bin/python3.5 2 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
基于用户修改 Python 版本:
vim ~/.bashrc 添加
python='/usr/bin/python3.5'
生效:
. ~/.bashrc