问题背景

公司目前有两套Spark集群和一套Hadoop集群用来做 数据相关的存储和计算。Hadoop的版本是2.7,Spark两套集群,一个是2.1.0版本,一个是 2.4.3版本。但是两个Spark集群安装的Python版本都是一样的,都是3.6.8

之前对大数据Spark了解不多,接手之后协助开发在提交 Python Spark任务的时候遇到问题。

最终定位是因为Python版本的问题导致的。

关于PySpark

processing data with Spark in Python

就是使用Python语言开发Spark任务提交进行数据处理。 PySpark的版本和 Spark 本身的版本一致

关于PySpark的安装和使用详见官方文档 https://spark.apache.org/docs/latest/api/python/getting_started/install.html#python-version-supported

Python版本选择

因为使用Python开发Spark任务,使用的Spark版本就和Python有着密切的关系,但是查找了 Spark官网 没有找到明确的地方指定,什么样的Spark版本需要什么样的Python版本

网上也找到一个类似的,但是个人感觉不是很详细。

于是自己使用爬虫的方式,爬取了所有的Python版本清单和Spark清单,然后再选择 Spark对应的Python版本的时候

1、先看当前Spark版本是多少

2、从Spark版本清单中找到该版本的发布时间

3、然后去 Python的版本清单中, 按照python版本排序之后 距离Spark版本的发布时间最近的Python版本,基本就是该Spark版本需要的最新的Python版本了

但是如果是两个发布时间非常接近,那就往下一个Python版本就行。

比如 Spark 2.1.0版本是2016/12/28发布的,距离 2016/12/28 最近的Python版本是3.6.0,发布于2016-12-23,按照常理也知道,Python新版本刚发布5天,Spark发布的版本中立马就支持了,肯定不是很现实。

所以对于 Spark 2.1.0 我们应该选择 3.5.9

  • Python爬取 Spark和Python版本程序 https://gitee.com/colin5063/cws-tools/blob/master/python/grab_spark_python_version.py

  • python 版本清单 https://gitee.com/colin5063/cws-tools/blob/master/common/python_versions.txt

  • spark 版本清单 https://gitee.com/colin5063/cws-tools/blob/master/common/spark_versions.txt

Spark版本对应的Python的最低版本

  • spark 2.1.0 到 2.4.8 版本之间,最低要求是 Python 3.4+

  • spark 3.0.0 以上, 最低要求是 Python 3.7+

Spark版本对应的Python的最高版本

判断的依据就是上面提到的:

Python的版本清单中, **按照python版本排序之后**  距离Spark版本的发布时间最近的Python版本,基本就是该Spark版本需要的最新的Python版本了

目前确定的是:

  • Spark 2.1.0 使用 Python 3.5.2

  • Spark 2.4.3 使用 Python 3.6.8

参考:

1、https://zhuanlan.zhihu.com/p/144151332


原文地址 PySpark之Python版本如何选择(详细版)

PySpark之Python版本如何选择(详细版)相关推荐

  1. ipython版本_1. Python版本的选择与安装

    Python综述 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,它具有卓越的通 ...

  2. python安装教程——最新详细版

    文章目录 环境 安装包下载 选择下载版本 其它版本介绍 通过下载好的离线安装包,安装python 自定义安装特征 选项解释 高级选项 等待安装 安装成功 验证 送python编程手册 环境 windo ...

  3. 深度学习环境配置(pytorch版本)----超级无敌详细版(有手就行)

    公众号文章--深度学习环境配置(pytorch版本) 写在前面:如果这篇文章对大家有帮助的话,欢迎关注Franpper的公众号:Franpper的知识铺,回复"进群",即可进入讨论 ...

  4. Python数据分析学习路线详细版总结

    数据分析人人都有必要掌握一点,哪怕只是思维也行.下面探讨Python数据分析需要学习的知识范畴,结合自己的经历和理解,总结的学习大纲,有些章节带有解释,有些没有.当然,关于学习范畴,可能每个人的理解都 ...

  5. pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型

    我有以下数据帧: corr_temp_df [('vacationdate', 'date'), ('valueE', 'string'), ('valueD', 'string'), ('value ...

  6. linux在线安装JDK(1.8版本)图文详细版

    linux在线安装JDK,命令下载 在线下载JDK 命令: wget --no-check-certificate --no-cookies --header "Cookie: oracle ...

  7. python版本的判断、选择指南

    判断源码的版本 Python3.0并不能做到完全兼容Python2.0 Python2.0与Python3.0在语法方面的差异主要表现为以下几个方面: 1.输出方面 Python2.0使用print关 ...

  8. JAVA软件IDEA安装教程详细版

    写在前面,由于最近换电脑了,于是乎又重新安装了软件,之前都是找人帮忙安装,自己多装了几次才会. 卸载原IDEA 在卸载程序里找到IDEA,清除一下. 准备工作 1.JDK下载 官方下载软件:https ...

  9. python版本及ML库

    一:关于Python版本的选择问题 关于Python的选择问题:要看学术界能不能把科学库迁移到Python3. 1:多个版本共用: 最近发现SciPy的最高版本是3.2,只能是退而求其次,不使用最新版 ...

最新文章

  1. 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法
  2. python3.6安装pygame-Pygame 框架安装教程(Python3.6为例)
  3. Android屏幕方向调整的两种方式
  4. windows linux 融合,Windows和Linux的设备驱动框架的对比融合研究
  5. 计算机对中断的处理是在用户态下进行的,电大本科生作业系统作业3与答案.doc...
  6. Bone Collector【01背包】
  7. map.addoverlay php,覆盖物 - 百度地图开发文档 - php中文网手册
  8. 解决pip2安装不成功的问题
  9. Latex文本文档的排版
  10. flash幻灯片源码
  11. adb 命令 monkey命令
  12. 计算机中丢失xvidcore.dll,win7系统提示“xvidcore.dll not found”的解决方法
  13. [回溯法] 求n个元素的集合的幂集 - 递归实现 - C语言
  14. 远程计算机桌面图标不见了怎么办,远程桌面图标不见了怎么办
  15. 自制hdmi线一头改vga图_杀鸡取卵 | 破拆电脑VGA电缆获取收音机天线零件:双目铁氧体磁芯...
  16. 别让学历限制你,你可能是AI领域的下一个巨星
  17. 生活不止眼前的苟且,还有诗和远方。如何理解?
  18. av_read_frame
  19. java开发工程师每天工作几小时,详细说明
  20. 卷积层的dropout - dropblock

热门文章

  1. SQL数据库基础中的基础
  2. 模拟和预测识别的模型输出
  3. 离线数仓03——业务数据采集平台
  4. UE5_创建C++项目报错
  5. 小程序网络请求wx.request总结
  6. Dubbo3注册为应用级时报错“No provider available for the service XXX”
  7. java写一个简单的银行存取款系统
  8. 感谢SQL Server “四眼仔”!
  9. 惊叹,Pyecharts绘制饼图原来可以如此漂亮!
  10. Estore网上购书项目