Windows+Pycharm+Spark環境配置

一、 環境配置
1)Python環境配置
2)Pycharm可在官網下載
3)以及相應版本的Spark下載。如登錄Spark官網,下載1.6.0的版本。
- 並將壓縮包解壓,解壓至相應路徑,如D:\spark-1.6.0-bin-hadoop2.6。
- 添加 SPARK_HOME = D:\spark-1.6.0-bin-hadoop2.6。
- 並將 %SPARK_HOME%/bin 添加至環境變量PATH。
- 然後進入命令行,輸入pyspark命令。若成功執行。則成功設置環境變量
這裏寫圖片描述


二、pyspark模塊導入
打開Pycharm,新建一個Python工程,以及新建word_count.py,執行以下代碼,測試能否導入spark包

import os
# Path for spark source folder
os.environ['SPARK_HOME'] = "D:\spark-1.6.0-bin-hadoop2.6"

# Append pyspark to Python Path
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python")
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python\lib\py4j-0.9-src.zip")
try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print("Successfully imported Spark Modules")

except ImportError as e:
    print("Can not import Spark Modules", e)
sys.exit(1)

以下代碼,必須添加。

# Append pyspark to Python Path
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python")
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python\lib\py4j-0.9-src.zip")

其添加了Spark的python包中pyspark的路徑,以及py4j的路徑。

pyspark包包含了我們所需要用到的python函數方法。

而py4j允許用Python編譯的python項目可以動態使用java虛擬機中的java對象,並讓java虛擬機返回python對象。

若不添加路徑,則會報錯“ImportError: No module named py4j”以及“ImportError: No module named pyspark”!!!

如果導入成功,則打印” Successfully imported Spark Modules”


三、 編寫word count代碼

from __future__ import print_function
import sys
from operator import add
import os


# Path for spark source folder
os.environ['SPARK_HOME'] = "D:\spark-1.6.0-bin-hadoop2.6"

# Append pyspark to Python Path
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python")
sys.path.append("D:\spark-1.6.0-bin-hadoop2.6\python\lib\py4j-0.9-src.zip")


from pyspark import SparkContext

from pyspark import SparkConf


if __name__ == '__main__':

    if len( sys.argv ) != 3:

        print ('Usage: python input_name output_name')

        exit(1)

    inputFile = sys.argv[1]

    outputFile = sys.argv[2]

    sc = SparkContext()

    text_file = sc.textFile(inputFile)


    counts = text_file.flatMap(lambda line: line.split(' ')).map(lambda word: (word, 1)).reduceByKey(

        lambda a, b: a + b)

    counts.saveAsTextFile(outputFile)

四、 運行代碼
spark-submit ./word_count.py ./1.txt ./2

運行成功,可在2文件夾得到相應的結果。

這裏寫圖片描述

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