windows下安裝spark-python


首先需要安裝Java

下載安裝並配置Spark

從官方網站Download Apache Spark™下載相應版本的spark,因為spark是基於hadoop的,需要下載對應版本的hadoop才行,這個頁面有對hadoop的版本要求,點擊Download Spark: spark-2.3.1-bin-hadoop2.7.tgz就可以下載壓縮包了,對應的hadoop版本要在Hadoop2.7及其以后。

 

 
 

這里解壓到D:\spark-2.3.1-bin-hadoop2.7,為了后續操作簡便,這里將解壓以后的文件夾名稱改為spark,這樣解壓的路徑就是D:\spark

配置環境變量

右鍵我的電腦,依次點擊屬性-高級系統設置-環境變量

新建用戶變量 SPARK_HOME    D:\spark

 

 
 

找到系統變量Path  點擊按鈕新建,然后添加文本%SPARK_HOME%\bin,按回車enter,繼續新建一個,添加文本%SPARK_HOME%\sbin,按鍵回車,一直點擊確定,就保存了更改,這樣就將bin、sbin文件夾中的程序放到了系統變量中

 

 
 

pyspark:到這里spark的配置完成了一部分,還有pyspark需要配置,pyspark等anaconda安裝后在下文中討論,pyspark的安裝有幾種方式,其中解壓以后的spark文件夾中就有pyspark庫,可以安裝到python的庫當中去;還可以不復制,pyspark可以通過pip單獨安裝,還有一種是單獨下載pyspark的安裝包,解壓以后安裝到python庫當中去。

 

 

 

安裝並配置Hadoop

上面安裝spark的時候有對hadoop的版本要求,這里要求的是2.7及以后的版本,進入官方網站Apache Hadoop Releases下載2.7.6 binary版本,其中source版本是該版本hadoop的源代碼,下載以后解壓到D:\hadoop-2.7.6,為了后續操作方便,解壓以后修改文件夾名稱為hadoop,這樣文件夾就是D:\hadoop

 

 
 

配置環境變量:

右鍵我的電腦,依次點擊屬性-高級系統設置-環境變量

 

 
 

新增用戶變量 HADOOP_HOME D:\hadoop

然后找到系統變量Path  點擊按鈕新建,然后添加文本%HADOOP%\bin,按回車enter,繼續新建一個,添加文本%HADOOP%\sbin,按鍵回車,一直點擊確定,就保存了更改,這樣就將bin、sbin文件夾中的程序放到了系統變量中

 

 
 

從網站中下載點擊打開鏈接一個壓縮包,然后解壓出來,復制其中的winutils.exe和winutils.pdb到hadoop的安裝文件夾中,復制目錄為:D:\hadoop\bin,復制到這個目錄中

當輸入命令pyspark出現以下結果時表明spark安裝配置完成了

 
 

安裝並配置anaconda

 

 

 

 

 

anaconda官方網站中下載並安裝對應版本的anaconda,安裝路徑這里的是C:\Anaconda3.5.2.0,其中需要注意的一點是,需要勾選第一個將anaconda加入環境變量的選項,這樣就不需要我們自己將它的路徑加入到環境變量中去了

安裝anaconda不是必須的,必須安裝的是python,單獨只安裝python也是可以的,但是anaconda當中集成了很多需要用到的庫,為了方便起見,這里安裝的是anaconda。

 
 

配置pyspark庫   anaconda包含pyspark

之前在安裝spark的時候,提到過pyspark庫的安裝有幾種方法,一種方法是直接將spark自帶的pyspark庫安裝到python的庫當中去;一種是使用命令pip install pyspark安裝;還有一種是單獨下載pyspark的安裝包,解壓以后安裝到python庫當中去。這幾種方法,這里都會進行講解。

 

將spark自帶的pyspark庫安裝到python:

以管理員身份打開cmd,按一下鍵盤上的window鍵,依次選中Windows 系統,右鍵命令提示符,點擊更多,點擊以管理員身份運行

 

進入spark安裝目錄的python文件夾,cd D:\spark\python

C:\>cd D:\spark\python

C:\>d:

 

D:\spark\python>

 

輸入命令 python setup.py install,等待安裝完成,

D:\spark\python>python setup.py install

 

出現這個圖時pyspark就安裝好了

 

 
 

pip install pyspark命令行方式安裝:

同上面打開cmd的方式相同,需要以管理員身份運行,按一下鍵盤上的window鍵,依次選中Windows 系統,右鍵命令提示符,點擊更多,點擊以管理員身份運行

輸入命令 pip install pyspark,等待安裝完成,這里需要注意的是,pyspark本身的安裝包占用磁盤空間很多,有幾百M,這種方式安裝需要在線下載pyspark,網速不錯的話,是非常推薦的,這種方式最簡單,只需要一行命令就行了。

 

單獨下載安裝pyspark:

進入pyspark的PyPI的網站,點擊左側的Download files,下載pyspark的安裝包,然后解壓好,這里解壓的路徑是D:\pyspark-2.3.1

 

同上面打開cmd的方式相同,需要以管理員身份運行,按一下鍵盤上的window鍵,依次選中Windows 系統,右鍵命令提示符,點擊更多,點擊以管理員身份運行

進入解壓以后文件夾的目錄

輸入命令行 python setup.py install ,等待安裝完成,pyspark就安裝完成了

D:\pyspark-2.3.1>python setup.py install

以上幾種方式都可以安裝pyspark,其中最方便的方式是使用命令行 pip install pyspark,下面將講解pycharm的安裝配置過程,並演示一個python編寫spark的示例。

 

 

安裝並配置Pycharm

Pycharm的官方網站中下載pycharm的community版本,這個版本是免費的,按照默認配置安裝就可以

安裝好以后打開pycharm,根據自己的喜好配置界面,到這一步時,可以安裝一些插件,這里安裝的是Markdown

 

進入打開界面時打開settings

選擇好Project Interpreter,點擊右側的下拉鏈,然后點擊show all

 

 
 

點擊+號,添加項目解釋器,選中其中的Conda Environment,然后點擊Existing environment,點擊右側的選擇按鈕,進入目錄C:\Anaconda3.5.2.0,選中其中的python.exe文件,然后一直點擊OK

 

 
 

等待庫載入完成以后,點擊OK,就完成了Project Interpreter的配置,等待更新完成,或者讓它在后台運行

 

 
 
 
 
 
 
 
 
 
 

這個是在最開始的時候配置Project Interpreter,進入界面以后,可以在File-Settings或者File-Default_Settings中設置

設置自己的字體,在File-Settings-Editor-Font當中設置

 

使用python來編寫spark的WordCount程序實例流程

新建一個項目,編輯好項目的存放目錄以后,需要注意選擇Existing interpreter,而不是New interpreter,上一步就是在配置Project interpreter,需要點擊選擇已經配置好的解釋器。新建一個項目還依次點擊按鈕File-Setting-New Project

等待pycharm配置好,右下角會有提示的,等這個任務完成以后,就可以新建python文件了

點擊Create就創建好了一個項目,鼠標放在左側項目然后右鍵,依次點擊New-Python File,創建一個python文件WordCount.py

進入WordCount.py文件寫入如下代碼,就是中文版WordCount,很經典的分布式程序,需要用到中文分詞庫jieba,去除停用詞再進行計數

新建兩個文件

 
 

jieba分詞https://pypi.org/project/jieba/#files

 

 
 

下載完后將導入項目中

 
 
 
 

from pyspark.contextimport SparkContext

import jieba

sc = SparkContext("local", "WordCount")#初始化配置

data = sc.textFile(r"D:\WordCount.txt")#讀取是utf-8編碼的文件

with open(r'd:\中文停用詞庫.txt','r',encoding='utf-8')as f:

x=f.readlines()

stop=[i.replace('\n','')for iin x]

print(stop)

stop.extend([',','的','我','他','','。',' ','\n','?',';',':','-','(',')','!','1909','1920','325','B612','II','III','IV','V','VI','—','‘','’','“','”','…','、'])#停用標點之類

data=data.flatMap(lambda line: jieba.cut(line,cut_all=False)).filter(lambda w: wnot in stop).\

map(lambda w:(w,1)).reduceByKey(lambda w0,w1:w0+w1).sortBy(lambda x:x[1],ascending=False)

print(data.take(100))

 

 
 

 



轉自:https://www.jianshu.com/p/c5190d4e8aaa


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM