前提条件:
1、拥有Ubuntu16.04环境
2、Python3环境(一般Ubuntu自带得有)
3、Ubuntu下安装好Spark和PySpark
步骤:
一、PySpark命令行
1、数据准备
打开终端,新建一个文件 data.txt
$ nano data.txt
内容如下:
Hello world
Hello hadoop
Hello spark
my first spark demo
保存退出。
2、启动 pyspark
$ pyspark
3、输入代码
>>> textFile = sc.textFile("file:///home/hadoop/data.txt")
>>> wordcount = textFile.flatMap(lambda line : line.split(" ")).map(lambda word : (word,1)).reduceByKey(lambda a, b : a + b)
>>> wordcount.collect()
>>> wordcount.foreach(print)
注意:
1、第一行的文件路径请注意按实际修改。
2、 第二行 flatMap的作用是将文件按空格进行拍扁,map的作用是将拍扁后的一个个单词分别映射成(word,1)的形式,reduceByKey的作用是将map输出中key相同的值加起来。
3、第三行的collect将分布在集群中的结果收集到driver程序所在节点的内存中(结果数据量不能过大),是触发计算的动作语句。
4、第四行循环遍历打印输出结果。
过程截图如下:
请思考:怎样统计HDFS文件的单词出现次数?
二、独立应用程序
1、数据准备,创建data.txt(同上)
2、编写应用程序mywordcount.py
$ nano mywordcout.py
内容如下:
from pyspark import SparkContext
sc = SparkContext( 'local', 'mywordcount')
textFile = sc.textFile("file:///home/hadoop/data.txt")
wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word,1)).reduceByKey(lambda a, b : a + b)
wordCount.collect()
wordCount.foreach(print)
保存退出。
3、运行应用程序
$ python3 mywordcout.py
完成! enjoy it!