序言
MARS的IPM項目後期要在Azure平臺上搭算法系統,終歸要把之前所有用pandas做數據處理的代碼全部重構成PySpark,作爲小白從前輩的口中得知PySpark是“世界上最爛的語言”後決定笨鳥先飛,既然早晚要承受痛苦,那還是提早做點準備罷,反正答辯完也沒什麼直接壓力了,權當學些新東西了。今天就先把安裝指南記錄一下,因爲PySpark的安裝涉及到系統環境的修改,而現在我必須在有公司加密系統的系統備份上使用,以後從公司離開回到之前正常的系統備份後可能還需要重新配置PySpark,留個記錄免得到時候不知道怎麼改。
預想可能會在這篇博客持續更新一些PySpark的學習內容,到這個歲數總歸是技多不壓身,多學一點總是沒壞處。近期可能會更新一些其他感興趣的方面的博客,畢竟很久沒有做些好玩的事情了,假如時間充裕的話。
PySpark安裝指南(WIN10)
首先簡單介紹一下PySpark。PySpark是基於python語言對Spark數據處理框架的封裝,涉及對DataLake, DataBase, DataFrame等多種形式數據的處理,內部還封裝了一些統計機器學習,統計分析等模塊。相比於傳統的pandas數據處理包,PySpark不僅在內容上更加豐富,更重要的是PySpark在處理邏輯上更加優化,使用分佈式處理使得在運行上佔據更少的內存,提升算法效率。
PySpark的安裝教程似乎沒有其他人寫得那麼複雜,需要配置HADOOP,JDK,SCALA等系統環境,這些一般都是在服務器上部署所需要的,如果只是在PC機上做入門性質的學習,並不需要這麼繁瑣。
因爲筆者之前有Java編程開發的經歷,JDK環境是現成的(Java 9.0.4)。從之後PySpark的使用來看,應該只有JDK環境是必須的,其他兩個並不必須。關於JDK環境搭建的方法是比較簡單的,可以很容易地找到教程。在此不多作贅述,謹以博主renlianggee的相關博客JDK的環境變量配置作爲援引。
配置好JDK環境後下載PySpark安裝包即可,在pypi官網https://pypi.org/project/pyspark/可以找到setup的tar包下載,截至至本文發佈,PySpark最新版爲2.4.5,下載後解壓如下圖所示👇
在解壓後的目錄下打開cmd輸入安裝指令,等待安裝完成即可。
python setup.py install
不出意外的話就安裝完成了,運行一段測試代碼看看是否可以運行👇
from pyspark import SparkConf, SparkContext
sc = SparkContext("local", "First App")
print(sc)
如果沒有發生任何問題,那實在是萬幸,但是大概率在以上步驟中會出現一些問題,筆者就自己遇到的問題做一個彙總,也是方便以後需要再次安裝時參考。
1. 在安裝前需要提前使用pip安裝好pypandoc庫,
2. 在運行測試代碼時,可能會出現如下報錯👇
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
出現這個問題的原因是沒有配置HADOOP環境,但是我們也不需要特別去配置HADOOP環境,只需要下載應用程序winutils.exe,這裏提供下載鏈接👇
鏈接:https://pan.baidu.com/s/1-fyyR2aXZXC7w17DXYGMEw
提取碼:fe04
下載好後在任意目錄新建文件夾winutils,並將winutils.exe放置在該文件夾下的bin目錄中(如下圖所示,筆者將其放在E:/Python/libs/winutils/bin中)👇
接着設置在環境變量的系統變量中新建變量名HADOOP_HOME,值爲winutils文件夾的路徑,並將%HADOOP_HOME%\bin添加到系統變量Path中👇
重啓計算機運行就不會再出現上述的Error了 。