使用Pycharm开发Spark应用程序(以WordCount为例)

大数据学习路线图

本篇博客将给大家介绍怎么在PyCharm上编写运行WordCount程序。

第一步 下载安装PyCharm

下载Pycharm

PyCharm的下载地址(Linux版本)。
下载完成后你将得到一个名叫:pycharm-professional-2018.2.4.tar.gz文件。我们选择的是正版软件,学生可申请免费使用。详细信息请百度。

安装PyCharm

执行以下命令解压文件:

cd ~/下载
tar -xvf pycharm-professional-2018.2.4.tar.gz

这时候我们可以在下载目录看到一个pycharm-2018.2.4文件夹。接下来我们把它放到/usr/local下,并且重命名

sudo mv ./pycharm-2018.2.4 /usr/local/pycharm

然后我们要执行pycharm.sh文件,完成首次安装:

cd /usr/local/pycharm/bin
./pycharm.sh

等待之后我们可以看到如下图界面:

选择不导入设置,点击OK。然后我们会看到以下界面:

选择左下角“Skip Remaining and Set Defaults”,默认设置即可,本人更偏爱白色,所以后面的截图会跟大家不一样,但是没有影响。

配置环境变量

配置环境变量的意义在于我们以后不需要每次都到pycharm文件夹下去启动程序。

sudo vim ~/.bashrc

将下面内容复制到文件的开头部分。

#pycharm
export PyCharm_HOME=/usr/local/pycharm
export PATH=${PyCharm_HOME}/bin:$PATH

完成以上操作后你就可以在终端直接使用:pycharm.sh命令打开程序了。

第二步 创建并运行WordCount程序

创建工程文件

在开始界面选择“Create New Project”

接下来按照下图操作,修改图中两处红框内容,project起名为WordCount,python选择3.6版本,没有的请安装。
最后点击Create,完成项目创建。

创建python文件

右键点击WordCount文件夹,选择New -> Python File,可以看到以下界面,我们取文件名为WordCount。

然后我们在WordCount.py中复制以下代码:

#-*- coding:utf8-*-
from pyspark import SparkConf, SparkContext

conf = SparkConf().setAppName("WordCount").setMaster("local")
sc = SparkContext(conf=conf)
inputFile =  "hdfs://localhost:9000/user/way/word.txt"
textFile = sc.textFile(inputFile)
wordCount = textFile.flatMap(lambda line : line.split(" ")).map(lambda word : (word, 1)).reduceByKey(lambda a, b : a + b)
wordCount.foreach(print)

这时候你会看到PyCharm自动报错,代码中带红色波浪线部分为PyCharm提示的错误。缺少pyspark等。接下来我们要利用pycharm自动帮我们安装pyspark。把鼠标放到带红色波浪线的地方,并且将光标点进错误的地方,如下图,会出现一个小红灯泡。

点击小红灯泡,选择“Install package pyspark”,等待程序自动安装完成,在程序底部可看到正在安装的提示。

补充说明一下代码。

我的inputFile = "hdfs://localhost:9000/user/way/word.txt"
这个文件是放在hdfs伪分布式文件系统上的,这时候你必须开启hdfs文件系统,相关操作查看实验室相关博客。
你也可以选择本地文件inputFile = "file:///home/way/桌面/word.txt"。 当然在这些位置你必须有这个word.txt文件。

Pycharm运行WordCount

然后你可以右键点击代码页面,选择Run “WordCount”。可以看到以下结果:

提交到spark运行

我们也可以把代码提交到Spark运行,具体方法是:
打开终端,打开Spark安装目录,并执行提交任务命令:

cd /usr/local/spark/
./bin/spark-submit /home/way/PycharmProjects/WordCount/WordCount.py 

翻一下我们的输出信息可以找到以下结果:

至此我们完成了在pycharm用python编写wordcount程序的实验。