以下内容完整记录了在 Linux 服务器上配置 Spark + Python 多版本环境时容易踩坑的几个关键环节。Spark 版本、Python 版本与依赖库之间的兼容性问题一直是开发者绕不开的难点,稍不留神就可能遇到各种报错。现在逐步拆解整个过程,帮你顺利搭建可用的开发环境。
1、安装 Spark

这里以 Spark 2.3.0 版本为例进行安装。下载并解压后,建议牢记解压路径,后续配置环境变量时需要用到它。
2、安装 Python
Spark 的版本直接决定了它能兼容的 Python 版本范围。例如,如果你安装了 Spark 2.3.0,那么对应的 Python 版本不能高于 3.5。在实际部署中,推荐使用 Anaconda 集成环境,这样既省心又能统一管理多个科学计算包。我机器上安装的是 Anaconda 3.4.2(对应 Python 3.5)。
安装命令非常简单:
bash bash Anaconda3-4.2.0-Linux-x86_64.sh
安装完成后,需要将 Anaconda 的 bin 目录添加到系统环境变量。编辑 /etc/profile 文件:
vi /etc/profile
在文件末尾追加一行:
export PATH=$PATH:/root/anaconda3/bin
保存退出后,执行 source /etc/profile 让配置立即生效。
3、更新 sklearn(机器学习常用包)
注意版本限制:sklearn 的版本不能超过 0.21,否则可能与 Spark 发生冲突。升级命令如下:
pip install -U scikit_learn
(如果系统同时存在多个 Python 版本,请确保你使用的 pip 指向的是正确的 Python 3.5 环境,否则可能升级到不兼容的版本。)
4、处理多版本 Python 冲突
这台服务器上因为安装了 Greenplum 数据库,自带 Python 2.7 且无法卸载,所以我们额外安装了 Python 3.5。两个版本共存时,系统默认的 Python 3 会直接无法启动,这通常是由于环境变量相互干扰导致的。解决方法是在 /etc/profile 中添加两行:
unset PYTHONHOME
unset PYTHONPATH
更新后重新执行 source /etc/profile,Python 3 就能正常启动了。
5、解决 import pyspark 报错
进入 Python 环境后,如果执行 import pyspark 提示 no module named pyspark,说明 Python 的搜索路径中没有包含 PySpark 对应的 Python 包目录。需要手动添加:
打开 /etc/profile,加入一行:
PYTHONPATH=/home/spark-2.3.0-bin-hadoop2.6/python
(注意:此处填写的是 Spark 安装目录下的 python 子目录,不是 Spark 的根目录。)
保存后执行 source /etc/profile,再次进入 Python 就能正常 import 了。
6、调整 pyspark 调用的 Python 版本
直接运行 pyspark 时,请留意终端输出的 Python 版本信息。如果发现调用的版本不对(例如默认调用了 Python 2.7),可能导致 pandas 等第三方库导入失败。解决办法是在 /etc/profile 中指定 Python 解释器:
PYSPARK_PYTHON=python3
(这里的 python3 指的是你安装的 Python 3.5 版本的可执行文件名。)
另外,为了让系统默认的 python 命令指向 Python 3.5,可以修改 /usr/bin 下的软链接。先进入 /usr/bin 目录,查看当前 python 的指向:
ls -l | grep python
然后删除旧的 python 链接,再新建一个指向 python3 的链接:
sudo rm -rf python
sudo ln -s /usr/bin/python3 /usr/bin/python
再次执行 python 命令,默认版本就会变为 Python 3.5.2 了。
