本文主要是介绍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 SparkContextsc = 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.valuefor w in d:#if dict.has_key(wd[w]):if wd[w] in dict:dict[wd[w]] +=1else:dict[wd[w]] = 1return 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
这篇关于Windows下Spark2.3+Python3.6+Pycharm的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!