首先说明一下,本文适合Windows系统远程登录Ubuntu服务器,使用Pycharm编写Spark应用程序。操作过程参考了很多网上教程,链接都在文中给出。
1. 准备工作
1.1 安装MobaXterm
这是一款很适合Windows系统的远程控制工具,具体介绍和使用可以参考这篇文章。
1.2 安装Hadoop
参考教程,里面包含了Hadoop和JDK的安装和使用的详细步骤。
1.3 安装spark
参考教程,我安装的版本是 spark 2.1.3。
2. 编程初步(无Hadoop)
2.1 Pyspark 交互模式
参考教程第三部分。
2.2 Spark Python API 模式
参考教程第四部分。
3. 编程进阶(有Hadoop)
3.1 Pyspark 交互模式
参考教程,里面介绍非常详细。
3.2 Spark Python API 模式
只需要在2.2的操作之前,按照3.1中加载HDFS文件的步骤操作一遍就行。
4. Pycharm开发
4.1 环境配置
在MobaXterm里面创建一个新的ssh远程链接,连上Ubuntu主机后,进入shell命令行界面。
输入以下命令打开Pycharm (Pycharm的安装可以参考这个教程)。
$ python-community
打开PyCharm后,创建一个新的Project。
然后选择“Run” ->“Edit Configurations” ->“Python”->“Environment variables” ,点击右边的文件夹图形,增加SPARK_HOME目录与PYTHONPATH目录,目录与 ~/.bashrc 里面的环境变量配置保持一致。
最后选择“File” ->“Settings” ->“Project:自己的工程名” ->“Project Structure”,后边的“+ Add Content Root”,将/usr/local/spark/python/lib 下的两个文件 pysaprk.zip 和 py4j-0.10.7-src.zip都添加进来。
这样环境配置就完成了,可以在pycharm里面使用spark啦。
注意,每次建立新的工程时都要按照这个步骤操作一遍。
4.2 在Pycharm里运行Spark应用程序
在pycharm里自己的工程文件夹下,创建一个新python文件。这里要写一个统计词频的应用程序,文件命名为“wordcount.py”。
将下面的代码复制到文件中去,注意文件路径。
from pyspark import SparkContext
sc = SparkContext('local', 'test')
textFile = sc.textFile("file:///usr/local/spark/code/wjw/wordcount/word.txt")
wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)
wordCount.foreach(print)
如果没有的话自己创建一个word.txt文件,在里面随意输入一些英文。
我的是这个样子的:
hello wjw!
this is your first spark test.
is it amazing?
enjoy your journey!
运行文件,看看输出结果。第一次执行,前面可能会有一大推文字,最后出来的是统计结果。
我的输出结果如下:
('', 1)
('this', 1)
('your', 2)
('enjoy', 1)
('wjw!', 1)
('test.', 1)
('is', 2)
('spark', 1)
('amazing?', 1)
('journey!', 1)
('hello', 1)
('it', 1)
('first', 1)
OK,到这里就结束啦!