PySpark之Python版本如何选择(详细版)
问题背景
公司目前有两套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版本如何选择(详细版)相关推荐
- ipython版本_1. Python版本的选择与安装
Python综述 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,它具有卓越的通 ...
- python安装教程——最新详细版
文章目录 环境 安装包下载 选择下载版本 其它版本介绍 通过下载好的离线安装包,安装python 自定义安装特征 选项解释 高级选项 等待安装 安装成功 验证 送python编程手册 环境 windo ...
- 深度学习环境配置(pytorch版本)----超级无敌详细版(有手就行)
公众号文章--深度学习环境配置(pytorch版本) 写在前面:如果这篇文章对大家有帮助的话,欢迎关注Franpper的公众号:Franpper的知识铺,回复"进群",即可进入讨论 ...
- Python数据分析学习路线详细版总结
数据分析人人都有必要掌握一点,哪怕只是思维也行.下面探讨Python数据分析需要学习的知识范畴,结合自己的经历和理解,总结的学习大纲,有些章节带有解释,有些没有.当然,关于学习范畴,可能每个人的理解都 ...
- pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型
我有以下数据帧: corr_temp_df [('vacationdate', 'date'), ('valueE', 'string'), ('valueD', 'string'), ('value ...
- linux在线安装JDK(1.8版本)图文详细版
linux在线安装JDK,命令下载 在线下载JDK 命令: wget --no-check-certificate --no-cookies --header "Cookie: oracle ...
- python版本的判断、选择指南
判断源码的版本 Python3.0并不能做到完全兼容Python2.0 Python2.0与Python3.0在语法方面的差异主要表现为以下几个方面: 1.输出方面 Python2.0使用print关 ...
- JAVA软件IDEA安装教程详细版
写在前面,由于最近换电脑了,于是乎又重新安装了软件,之前都是找人帮忙安装,自己多装了几次才会. 卸载原IDEA 在卸载程序里找到IDEA,清除一下. 准备工作 1.JDK下载 官方下载软件:https ...
- python版本及ML库
一:关于Python版本的选择问题 关于Python的选择问题:要看学术界能不能把科学库迁移到Python3. 1:多个版本共用: 最近发现SciPy的最高版本是3.2,只能是退而求其次,不使用最新版 ...
最新文章
- mysql sleep详解_关于MySQL的SLEEP(N)函数
- [云炬ThinkPython阅读笔记]1.5 值和类型
- C语言递归算法将十进制转换为二进制(附完整源码)
- POJ - 2299 Ultra-QuickSort(线段树+离散化/归并排序)
- maven 可执行 jar_Maven提示:有关可执行jar的所有信息
- Python多篇新闻自动采集
- 【Daily Scrum】12-08
- 程序员面试金典 - 面试题 17.26. 稀疏相似度(哈希map)
- 在react项目中编写css,更好的在react项目中写css代码--emotion
- 星光灿烂 拍夜景的技巧和设置
- 部署SpringBoot到阿里云
- 熵简技术谈 | 金融情绪分析真的有用吗?一起来看金融情绪分析的研究进展及应用实践
- 进度图绘制十大注意事项
- 计算机应用u盘解释,U盘速度测试和参数解释
- 2021-10-11电子天平期间核查和日常核查管理方法
- 《沉默的大多数》 - 王小波
- cmt obm odm 代工模式oem_工厂有OEM,ODM,OBM之分吧,分别是什么意思?
- 基于画布的手绘风格图形库 Rough.js
- wps中的格式化快捷键
- 无法识别服务器硬件信息,请教:无法获取服务器硬件信息