1. 程式人生 > >機器學習 - 開發環境安裝pycharm + pyspark + spark集成篇

機器學習 - 開發環境安裝pycharm + pyspark + spark集成篇

package ron latest flat 數據量 oop ima 1.0 sklearn

AS WE ALL KNOW,學機器學習的一般都是從python+sklearn開始學,適用於數據量不大的場景(這裏就別計較“不大”具體指標是啥了,哈哈)

數據量大了,就需要用到其他技術了,如:spark, tensorflow,當然也有其他技術,此處略過一坨字...

先來看看如何讓這3個集成起來吧(WINDOWS環境):pycharm(python開發環境), pyspark.cmd(REPL命令行接口), spark(spark驅動、MASTER等)

download Anaconda, latest version, which 64bit support for windows, 這裏必須安裝64位版本的Anaconda,因為後面tensorflow只支持64位的

https://www.continuum.io/downloads/

技術分享圖片

安裝Anaconda,都是默認選項就行

dowload pycharm from jetbrain site, and install (please do it by yourself),這個很簡單,直接略過

接下來是下載spark,我下的是最新版2.1.0的 http://spark.apache.org/downloads.html

解壓縮後把它復制到一個容易找的目錄,我這是C:\spark-2.1.0-bin-hadoop2.7

這個時候如果直接雙擊bin下的spark-shell.cmd文件的話是會報錯的,主要原因是沒有winutils.exe這東西(用來在windows環境下模擬文件操作的),因此還需要做幾個小步驟才能正常啟動

1. 設置一個假的hadoop目錄,在這個目錄的bin下放剛才說的那個winutils.exe文件(需要自己創建bin目錄)

2. 設置環境變量HADOOP_HOME,值為這個假的hadoop目錄

3. 拷貝winutils.exe到這個bin裏,下載

OK,這時可以雙擊spark-shell.cmd了,如下:

技術分享圖片

HOHO, ==,==,我們不是要搞PYTHON環境嘛,怎麽搞scala了,別急,先搞scala是因為先要把基本的給走通,再去搞python環境的接口。

python接口的REPL是這個文件,pyspark.cmd,雙擊,也報錯...

別急,這裏是因為python版本問題,anaconda最新版的python解釋器版本是3.6.1,這個版本的spark不支持,需要降低版本 到3.5

卸載python? 不用,用anaconda的環境切換就行了

1. 先創建一個新的開發環境: conda create -n my_new_env_python35

2. 激活這個新的開發環境: activate my_new_env_python35

3. 在這個新的開發環境中安裝python 3.5: conda install python=3.5

這時python3.5版本的解釋器就算是安裝完成了,默認目錄在C:\ProgramData\Anaconda3\envs\my_new_env_python35\python.exe

然後就是需要把spark的python支持包復制到相應的路徑中了,從下圖1復制到my_new_env_python35環境的Lib\site-packages目錄下

技術分享圖片

接下來需要把python默認版本改成python3.5,需要修改PATH路徑,把python3.5的路徑放在第一個查找路徑下就行了

然後就開始整pycharm開發環境了。

首先肯定是新建一個python項目了,然後改設置,用來指定python解釋器的路徑,菜單:File-->Settings

技術分享圖片

接著設置運行時候的配置參數

技術分享圖片

技術分享圖片

漏了python調用pyspark的代碼了,代碼如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sys from operator import add from pyspark import SparkContext if __name__ == "__main__": sc = SparkContext(appName="PythonWordCount") lines = sc.textFile(‘words.txt‘) count=lines.count() print(count) counts = lines.flatMap(lambda x: x.split(‘ ‘)) \ .map(lambda x: (x, 1)) \ .reduceByKey(add) output = counts.collect() for (word, count) in output: print("%s: %i" % (word, count)) sc.stop()

至此,python環境算是搞定了。

技術分享圖片

==

出處:https://www.cnblogs.com/aarond/p/pyspark.html

機器學習 - 開發環境安裝pycharm + pyspark + spark集成篇