游乐游手机版
首页/编程语言/文章详情

Spark多版本Python兼容配置指南

时间:2026-06-22 10:21
在Linux服务器上配置Spark+Python多版本环境的关键步骤包括:注意Spark2 3 0兼容Python3 5,通过Anaconda创建独立环境并正确设置环境变量。为处理Python2 7与3 5共存,需取消PYTHONHOME和PYTHONPATH,将Spark的python目录添加到PYTHONPATH,指定PYSPARK_PYTHON为pyt

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

1、安装 Spark

spark python3_Python+spark配置,多版本Python兼容问题

这里以 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 了。

来源:https://blog.csdn.net/weixin_39787826/article/details/110058444
上一篇Anaconda降低Python版本的完整方法与操作步骤详细指南 下一篇Python环境及virtualenv虚拟环境安装
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CentOS与Golang打包常见兼容性问题探讨
编程语言 · 2026-07-01

CentOS与Golang打包常见兼容性问题探讨

CentOS与Golang打包的兼容性问题集中在glibc版本不匹配、交叉编译环境变量错误、依赖库缺失及Go依赖管理不规范。可通过Docker容器编译、选择兼容Go版本、正确设置GOOS GOARCH环境变量、安装对应开发包及使用GoModules解决。

CentOS中Fortran与Python如何协同工作从入门到实战完整教程
编程语言 · 2026-07-01

CentOS中Fortran与Python如何协同工作从入门到实战完整教程

在CentOS中,Fortran与Python可通过f2py、SWIG、共享库调用或subprocess协同。f2py封装Fortran为Python模块,支持数组运算;共享库需手动对齐数据类型;系统调用适合独立计算。

CentOS中Golang打包优化方法
编程语言 · 2026-07-01

CentOS中Golang打包优化方法

在CentOS中优化Golang编译打包,可显著提升编译速度并减小二进制文件体积。关键技巧包括:设置环境变量、使用Go模块管理依赖、编译时添加-ldflags= "-s-w "去除调试信息、利用UPX工具压缩、运行strip清理符号表,以及优化cgo内C代码的编译选项。综合运用这些方法能有效优化最终程序。

在CentOS系统中cpustat与其他工具协同使用的完整方法
编程语言 · 2026-07-01

在CentOS系统中cpustat与其他工具协同使用的完整方法

cpustat作为sysstat包的CPU监控工具,可通过管道与grep等命令配合过滤数据,利用脚本自动记录带时间戳的日志,或结合图形工具查看,也可格式化输出后接入Zabbix、Grafana等Web监控系统,实现可视化与告警。

CentOS中readdir与其他Linux发行版的差异
编程语言 · 2026-07-01

CentOS中readdir与其他Linux发行版的差异

CentOS基于RHEL,与Ubuntu、Debian、Fedora在包管理器(yum dnfvsapt)、默认文件系统(XFSvsext4)等存在差异,但readdir等系统调用遵循POSIX标准,行为一致。