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

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版本如何選擇(詳細版)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章