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文件夹得到相应的结果。

这里写图片描述

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