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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tyhj_sf/article/details/81907051

最近项目涉及在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)环境变量一定要配置正确。
把握以上两点,环境搭建基本不会出错。

参考资料:

[1].http://spark.apache.org/
[2].https://blog.csdn.net/m0_37752104/article/details/80898967
[3].https://blog.csdn.net/u012882134/article/details/77893894

猜你喜欢

转载自blog.csdn.net/tyhj_sf/article/details/81907051
今日推荐