1. 程式人生 > >Windows下Spark2.3+Python3.6+Pycharm的配置

Windows下Spark2.3+Python3.6+Pycharm的配置

最近專案涉及在spark分散式上做資料處理,需要先配置Spark+Python的本地Windows7(win10也一樣的操作)機器上開發環境,所以寫下本文備忘,同時希望對其他同學也有所幫助。

準備工作

spark版本更新比較頻繁,也許你看到這篇文章,版本可能已經新增。
當前最新版本的spark為2.3.1,spark的執行需要JDK8以上,所以你需要首先安裝jdk8並配置好環境變數。
Python3.6及pycharm的安裝配置不在本文範圍,沒安裝的同學請自行檢視其它資料安裝。
上述開發環境具備後還需要pip安裝pyspark包。

pip install py4j
pip install
pyspark

安裝spark

1) 首先去官網下載對應的安裝包,檔名含bin的為免安裝版。
網址:http://spark.apache.org/downloads.html
這裡寫圖片描述
如上圖所示,Hadoop2.7就是需要的hadoop版本。
注意:在第2個下拉列表中選擇了哪個版本的Hadoop就要下載相應版本的。
2)下載Hadoop
地址:http://hadoop.apache.org/releases.html#Download
這裡寫圖片描述
左側是版本,選擇2.7.7,點選對應的binary進入下載頁面。
3)配置環境變數
spark和Hadoop均為免安裝版,直接解壓到你的安裝目錄即可。
分別配置環境變數如下2個圖所示。
這裡寫圖片描述


這裡寫圖片描述
上述配置完記得將HADOOP_HOME變數新增到Path環境變數值中,如下所示:
這裡寫圖片描述
注意:HOME目錄後面是沒有分號的,PATH目錄後面是有分號的。
4)測試是否配置成功。
在命令列輸入pyspark,提示如下即配置成功。
這裡寫圖片描述

測試程式

from pyspark import SparkContext


sc = SparkContext('local')
doc = sc.parallelize([['a','b','c'],['b','d','d']])
words = doc.flatMap(lambda d:d).distinct().collect()
word_dict = {w:i for
w,i in zip(words,range(len(words)))} word_dict_b = sc.broadcast(word_dict) def wordCountPerDoc(d): dict={} wd = word_dict_b.value for w in d: #if dict.has_key(wd[w]): if wd[w] in dict: dict[wd[w]] +=1 else: dict[wd[w]] = 1 return dict print(doc.map(wordCountPerDoc).collect()) print("successful!")

出現如下提示表示執行成功,可以愉快地進行開發了!
這裡寫圖片描述

注意事項

1)spark對依賴的所有工具的版本務必選對,否則可能報莫名其妙的錯誤。
請看網址:http://spark.apache.org/docs/latest/ 下面的說明。
這裡寫圖片描述
2)環境變數一定要配置正確。
把握以上兩點,環境搭建基本不會出錯。

參考資料: