因爲linux下搭建環境沒有windows下那麼麻煩,這裏採用的是Linux下搭建開發環境。
pandas和sklearn
這裏推薦使用集成包搭建
Anaconda
Anaconda是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。
安裝步驟
下載安裝包
官網下載鏈接 https://www.continuum.io/downloads ,點進去可以看到有python3和python2的,因爲python2和python3差別較大,推薦兩個都下載安裝一下安裝anaconda
以python2的版本爲例,下載後有一個名爲 Anaconda2-4.4.0-Linux-x86_64.sh 的文件
安裝步驟如下:- 切換到目錄下,添加運行權限
sudo chmod +x Anaconda2-4.4.0-Linux-x86_64.sh
- 執行安裝
./Anaconda2-4.4.0-Linux-x86_64.sh
這裏可以選擇安裝路徑,默認不換的話就直接回車
一路全部選擇yes,它會自動把anaconda添加到path中
安裝成功
同理可以安裝anaconda3
安裝成功之後,在命令行中輸入python python2結果如下
因爲anaconda中自帶pandas和sklearn,因此pandas和sklearn環境搭建已經完成。
開發工具
pycharm
pycharm python開發利器,下載地址:http://www.jetbrains.com/pycharm/download/
直接下載高級版 ,解壓之後,切換到bin目錄下,輸入
sh pycharm.sh
即可運行
激活方式使用最後一種服務器激活,輸入:http://idea.liyang.io即可
激活成功後,選擇pure python項目創建新項目
上圖中可以看到interpreter選項默認用的anaconda2的
我們也可以在創建項目後更改
點擊file->setttings搜索interpreter
在這裏可以看到當時使用的python環境
其中 pandas和sklearn已經安裝,點擊右側的+按鈕或以安裝其他庫
python-notebook
python-notebook是一種在瀏覽器中進行交互的環境,用戶友好度非常高,特別是在小程序 中,一條條執行時,可以方便地看到結果,完全可以替代默認的命令行。
在annaconda的bin目錄下輸入ls命令
可以看到,anaconda已經安裝了python-notebook。
接下來,我們切換到一個python項目中,運行jupyter-notebook即可打開python-notebook
在本地瀏覽器中就可以進行notebook交互界面了,下面是python-notebook運行sklearn中svm識別數字圖片的效果,可以看出python-notebook非常方便。
python-notebook的使用可參考 http://www.360doc.com/content/16/1221/02/1489589_616432355.shtml
spark環境搭建
下載spark
spark下載地址 https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
下載後解壓,然後把它添加到path中
在用戶根目錄下,打開.bashrc,添加
export SPARK_HOME=/home/h/Downloads/spark-2.2.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
然後運行
source .bashrc
安裝pyspark
直接在命令行中運行
pip install pyspark
這裏的pip默認是anaconda3中的,如果要安裝到anaconda2中,請把pip路徑補全。
不用pip的話,也可以在pypi中下載源碼安裝,源碼地址
下載後解壓,在命令行中輸入
python setup.py build
python setup.py install
進行安裝
安裝完成後,在命令行中輸入pyspark,即可進入交互界面
接下來來跑一個mapreduce中的wordCount例子
新建一個words.txt,內容可以如下:
The dynamic lifestyle
people lead nowadays
causes many reactions
in our bodies and
the one that is the
most frequent of all
is the headache
在notebook中輸入
# -*- coding: utf-8 -*-
import sys
from pyspark import SparkContext
from operator import add
import re
sc = SparkContext(appName= "wordsCount")
lines = sc.textFile('words.txt')
counts = lines.flatMap(lambda x: x.split(' '))\
.map(lambda x : (x, 1))\
.reduceByKey(add)
output = counts.collect()
output
sc.stop()
運行結果如下: