问题背景

公司目前有两套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. mysql sleep详解_关于MySQL的SLEEP(N)函数
  2. [云炬ThinkPython阅读笔记]1.5 值和类型
  3. C语言递归算法将十进制转换为二进制(附完整源码)
  4. POJ - 2299 Ultra-QuickSort(线段树+离散化/归并排序)
  5. maven 可执行 jar_Maven提示:有关可执行jar的所有信息
  6. Python多篇新闻自动采集
  7. 【Daily Scrum】12-08
  8. 程序员面试金典 - 面试题 17.26. 稀疏相似度(哈希map)
  9. 在react项目中编写css,更好的在react项目中写css代码--emotion
  10. 星光灿烂 拍夜景的技巧和设置
  11. 部署SpringBoot到阿里云
  12. 熵简技术谈 | 金融情绪分析真的有用吗?一起来看金融情绪分析的研究进展及应用实践
  13. 进度图绘制十大注意事项
  14. 计算机应用u盘解释,U盘速度测试和参数解释
  15. 2021-10-11电子天平期间核查和日常核查管理方法
  16. 《沉默的大多数》 - 王小波
  17. cmt obm odm 代工模式oem_工厂有OEM,ODM,OBM之分吧,分别是什么意思?
  18. 基于画布的手绘风格图形库 Rough.js
  19. wps中的格式化快捷键
  20. 无法识别服务器硬件信息,请教:无法获取服务器硬件信息

热门文章

  1. PC端获取摄像头图片并上传的实现
  2. CentOS命令 - crontab: 任务调度
  3. Python——列表元素的排序
  4. 全球最好的IT企业文化 :Netflix 企业文化
  5. MICROSOFT SQL 2000 数据库报7994错误,不能存储数据
  6. Linux系统安全与应用
  7. asp毕业设计——基于asp+sqlserver的二手交易系统设计与实现(毕业论文+程序源码)——二手交易系统
  8. PHPCMS V9 SQL查询篇
  9. 华为MateBook D MRC-W50 15.6开启TPM2.0
  10. C++实验一:类与对象——电梯