以前在進行搜索引擎rank-svm排序模型訓練時,直接使用python讀取的HDFS日誌文件、統計計算等預處理操作再進行svm模型,最終產生出訓練模型。現在回想一下,數據預處理這一塊完全可以使用spark進行,而且看起來更“正規一點”和高大上,並藉機接觸一下大數據。pyspark的安裝折騰了一上午, ...
以前在進行搜索引擎rank-svm排序模型訓練時,直接使用python讀取的HDFS日誌文件、統計計算等預處理操作再進行svm模型,最終產生出訓練模型。現在回想一下,數據預處理這一塊完全可以使用spark進行,而且看起來更“正規一點”和高大上,並藉機接觸一下大數據。pyspark的安裝折騰了一上午,這篇文章簡述一下unbuntu下如何安裝pyspak。
主要過程:1) 安裝jdk1.8; 2)安裝pyspark; 3)安裝py4j。
jdk1.8的安裝相對簡單,這裡省略。下麵介紹安裝pyspark。
1.pip命令安裝
官方文檔說pypi已經支持pyspark,因此對於python用戶,可以使用pip install pyspak命令進行(前提是你已經安裝了pip)。該命令執行後一段時間,會出現如下列印
然後,你可以泡壺茶,靜靜等待。。。
在安裝過程中,你可能會遇到2個問題:1)安裝的過程中出現timeout的問題,這個問題是站點或者網路問題,可以延長pip install的預設超時時間(15s)來解決,例如設置預設超時時間100s:pip install --default-time=100 pyspark ; 2) 如果你使用的python版本過低,例如python2.7,在安裝的過程中,會拋出如下異常
白色字體提示:InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this.
意思就是說建議你升級python版本。筆者的很多腳本都是python2.7.14的,因此升級python2.7是萬萬不可能的,那麼智能另闢蹊徑了,看下麵。
2. 源碼包綠色安裝
如果pip命令安裝不可行,則可以使用該方法。
1) 下載spark-2.3.0-bin-hadoop2.7.tgz
2) 然後tar -xzf spark-2.3.0-bin-hadoop2.7.tgz,之後在解壓的bin目錄下就可以可以看到pyspark了。
3)運行./pyspark
點背啊,又遇到問題了:zipimport.ZipImportError: can't decompress data; zlib not available。解決辦法:
(1) 先安裝系統相應的依賴庫文件: sudo apt-get install zlibc zlib1g-dev
(2) 到python安裝目錄下執行: sudo ./configure
(3) 編輯Modules/Setup文件:
vim Modules/Setup
找到下麵這句,去掉註釋
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
(4) 重新編譯安裝:
sudo make
sudo make -i install
重新編譯安裝後,在運行./pyspark,終於出現spark圖標了,如下。
4)配置變數,增加/home/taoli5/software/pyspark/spark-2.3.0-bin-hadoop2.7/bin目錄,這樣以後就可以在任何地方直接調用pyspark了。
3.安裝py4j,直接執行sudo pip install py4j就行了。
4,.測試pyspark
>>>pyspark >>> textFile = spark.read.text("README.md") >>> textFile.count() [Stage 0:> (0 +[Stage 0:===========================================================(1 + 103 >>> textFile.count() 103 >>> textFile.filter(textFile.value.contains("Spark")).count() 20 >>>
至此,整個安裝過程就完成了,good lock!