Pycharm基於Anaconda配置PySpark

一、開發PySpark 所需準備環境

  1. 安裝python環境:下載安裝Anaconda。參考:https://lixinkuan.blog.csdn.net/article/details/104636483
  2. 安裝PyCharm:下載安裝PyCharm。
  3. 官網下載Spark安裝包:由於PyCharm開發spark 需要本地Spark環境,所以要在官網中下載Spark安裝包到本地(這裏我們下載Spark1.6版本)。
  4. 進入Spark官網,找到對應的Spark版本下載。

 

  • 將下載好的安裝包解壓到本地某個路徑(路徑中不要有空格和中文)
  • 將解壓的路徑中的…spark….\python\lib下的以下兩個壓縮包解壓

 

 

注意

  1. py4j是一個用 Python和Java編寫的庫。通過Py4J,Python程序能夠動態訪問Java虛擬機中的Java對象,Java程序也能夠回調Python對象。
  2. pyspark 是 Spark 爲 Python 開發者提供的 API。

二、PyCharm開發Spark應用程序

使用PyCharm開發Spark應用環境需要配置Python環境,我們使用的Spark1.6版本,Spark2.1以下版本不支持python3.6版本,所以我們使用兼容性比較好的Python3.5版本,需要在PyCharm中配置。具體如下:

2.1、打開PyCharm創建新的項目

點擊Create創建。

2.2、配置項目的結構

選中項目,點擊File->Settings…->點擊 Project:xxx:->Project Structure

配置完成後,項目根目錄下多了一個lib目錄:

2.3、創建一個Spark應用程序腳本(WordCount爲例)

創建一個package:

 

右鍵創建一個目錄,目錄中創建一個文件,內容如下:

 

創建python腳本,內容如下:


from pyspark import SparkConf
from pyspark import SparkContext

if __name__ == '__main__':
    conf = SparkConf().setMaster("local").setAppName("wordcount")
    sc = SparkContext(conf=conf)
    lines = sc.textFile("../data/words")
    words = lines.flatMap(lambda line:line.split(","))
    pair_words = words.map(lambda word:(word,1))
    result = pair_words.reduceByKey(lambda a,b:a+b)
    print(result.collect())

運行,報錯如下,需要配置SPAKR_HOME:   

 

2.4、配置SPARK_HOME

寫好pyspark腳本後,在運行python腳本之前,要配置下SPARK_HOME:

找到本地解壓的spark安裝包路徑,配置SPARK_HOME,完成即可。

也可以在Defaults中配置好SPARK_HOME,每次創建pyspark腳本運行時,就不用手動來設置。

注意:這裏的SPARK_HOME也可以在本地系統中的環境變量中配置好,在pycharm中運行pyspark腳本時就不會找不到SPARK_HOME,兩種方式都是可以的。在系統中配置好環境變量要重啓pycharm。

2.5、運行腳本

注意:運行腳本時有可能出錯:

指定pyspark使用的python版本即可(與項目的Project Interpreter使用的python版本路徑一致):

在代碼中可以加入:

import os
os.environ["PYSPARK_PYTHON"] = "C:\\Users\\wubai\\Anaconda3\\envs\\pyspark\\python.exe"

也可以在系統中配置環境變量(要重啓Pycharm):

也可以在Edit Configurations…中加入環境變量:

以上三種方式任選其一即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章