当前位置: 首页 > news >正文

spark3.3.4 上使用 pyspark 跑 python 任务版本不一致问题解决

问题描述

在 spark 上跑 python 任务最常见的异常就是下面的版本不一致问题了:

`RuntimeError: Python in worker has different version 3.7 than that in driver 3.6, PySpark cannot run with different minor versions. Please check environment variables PYSPARK PYTHON...`

这个异常的原因是 worker 或叫 executor 中使用 python 版本与 driver 上的 python 版本不一致造成的。

这里面要明确一个概念,worker 上的版本也就是官网 pyspark 使用的 python 版本,这个是固定的,可以在 spark 中的官网查询到,比如在 spark 3.3.4 版本中:

Installation — PySpark 3.3.4 documentation

可以看到官网描述的支持的 Python 版本是不能低于 Python 3.7 的:

这也就是说,如果你要跑 python 任务,你的 driver 和 worker 侧的 python 版本不能低于 3.7 版本,最小是 3.7,否则就会出现上面描述的异常。

解决方案

那就很简单了,只需要保证 driver 和 worker 上的 python 版本符合 pyspark 的要求即可,如果本地有多个 python 版本,我们只需要通过环境变量指定正确的 python 版本即可:

1,如果是 python 代码,可以直接在代码中指定:

# 系统环境变量配置 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON
import os
os.environ['PYSPARK_PYTHON'] = "/Users/spark/conda/miniconda3/envs/py37/bin/python"
os.environ['PYSPARK_DRIVER_PYTHON'] = "/Users/spark/conda/miniconda3/envs/py37/bin/python"

2,如果不是 python 代码,则可以在环境变量中指定:

export PYSPARK_PYTHON=/Users/spark/conda/miniconda3/envs/py37/bin/python
export PYSPARK_DRIVER_PYTHON=/Users/spark/conda/miniconda3/envs/py37/bin/python

其他注意事项

如果是使用 mlflow 包管理的任务,除了 driver 和 executor 上 python 版本保持一致,训练模型用的 python 版本也尽量匹配 pyspark 的版本要求,否则可能出现兼容性问题

http://www.lryc.cn/news/419309.html

相关文章:

  • 处理Pandas中的JSON数据:从字符串到结构化分析
  • 国内的 Ai 大模型,有没有可以上传excel,完成数据分析的?
  • Spring: jetcache
  • 什么是分布式事务?
  • 深入Java内存区域:堆栈、方法区与程序计数器的奥秘
  • 【ML】异常检测、二分类问题
  • 8.8-配置python3环境+python语法的使用
  • 高质量WordPress下载站模板5play主题源码
  • 【C++】类的概念与基本使用介绍
  • 基于Python和OpenCV的图像处理的轮廓查找算法及显示
  • 使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!
  • NLP从零开始------8文本进阶处理之文本向量化
  • 【网络编程】字节序,IP地址、点分十进制、TCP与UDP的异同
  • 关于k8s的pvc存储卷
  • 【物联网设备端开发】ESP开发工具:QEMU的使用方法
  • c++中std::endl 和“\n“ 这两个换行符有什么区别
  • http中get和post怎么选
  • 数据分析及应用:快手直播间人员在线分析
  • 【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例
  • LearnOpenGL——混合、面剔除
  • 视频网站为何热衷于SCDN
  • Redis与DataBase保持数据一致性
  • 解决 MacOS 连接公司 VPN 成功但是不能网络的问题
  • 【Kubernetes】k8s集群之Pod容器资源限制和三种探针
  • 从古代驿站体系看软件安全管控@安全历史04
  • 8.8 哈希表简单 1 Two Sum 141 Linked List Cycle
  • 动态规划之——背包DP(完结篇)
  • Advanced IP Scanner - 网络扫描工具介绍
  • 数据库事务的四大特性ACID
  • ELK架构介绍