PySpark之Python版本如何選擇(詳細(xì)版)

WechatIMG172.jpeg

問題背景

公司目前有兩套Spark集群和一套Hadoop集群用來做 數(shù)據(jù)相關(guān)的存儲(chǔ)和計(jì)算。Hadoop的版本是2.7,Spark兩套集群,一個(gè)是2.1.0版本,一個(gè)是 2.4.3版本。但是兩個(gè)Spark集群安裝的Python版本都是一樣的,都是3.6.8

之前對(duì)大數(shù)據(jù)Spark了解不多,接手之后協(xié)助開發(fā)在提交 Python Spark任務(wù)的時(shí)候遇到問題。

最終定位是因?yàn)镻ython版本的問題導(dǎo)致的。

關(guān)于PySpark

processing data with Spark in Python

就是使用Python語言開發(fā)Spark任務(wù)提交進(jìn)行數(shù)據(jù)處理。 PySpark的版本和 Spark 本身的版本一致

關(guān)于PySpark的安裝和使用詳見官方文檔 https://spark.apache.org/docs/latest/api/python/getting_started/install.html#python-version-supported

Python版本選擇

因?yàn)槭褂肞ython開發(fā)Spark任務(wù),使用的Spark版本就和Python有著密切的關(guān)系,但是查找了 Spark官網(wǎng) 沒有找到明確的地方指定,什么樣的Spark版本需要什么樣的Python版本

網(wǎng)上也找到一個(gè)類似的,但是個(gè)人感覺不是很詳細(xì)。

于是自己使用爬蟲的方式,爬取了所有的Python版本清單和Spark清單,然后再選擇 Spark對(duì)應(yīng)的Python版本的時(shí)候

1、先看當(dāng)前Spark版本是多少

2、從Spark版本清單中找到該版本的發(fā)布時(shí)間

3、然后去 Python的版本清單中, 按照python版本排序之后 距離Spark版本的發(fā)布時(shí)間最近的Python版本,基本就是該Spark版本需要的最新的Python版本了

但是如果是兩個(gè)發(fā)布時(shí)間非常接近,那就往下一個(gè)Python版本就行。

比如 Spark 2.1.0版本是2016/12/28發(fā)布的,距離 2016/12/28 最近的Python版本是3.6.0,發(fā)布于2016-12-23,按照常理也知道,Python新版本剛發(fā)布5天,Spark發(fā)布的版本中立馬就支持了,肯定不是很現(xiàn)實(shí)。

所以對(duì)于 Spark 2.1.0 我們應(yīng)該選擇 3.5.9 。

Spark版本對(duì)應(yīng)的Python的最低版本

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

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

Spark版本對(duì)應(yīng)的Python的最高版本

判斷的依據(jù)就是上面提到的:

Python的版本清單中, **按照python版本排序之后**  距離Spark版本的發(fā)布時(shí)間最近的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版本如何選擇(詳細(xì)版)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容