Spark算法实例:词频统计
原标题:Spark算法实例:词频统计
文章图片
Spark支持Scala、Python、Java、R等编程语言 。 Scala作为Spark的原生语言 , 代码优雅、简洁而且功能完善 , 很多开发者都比较认可 , 它是业界广泛使用的Spark程序开发语言 。 Spark也提供了Python的编程模型PySpark , 使得Python可以作为Spark开发语言之一 。 尽管现在PySpark还不能支持所有的SparkAPI , 但是以后的支持度会越来越高 。 Java也可以作为Spark的开发语言之一 , 但是相对于前两者而已 , 逊色了很多 , 但是Java8却很好地适应了Spark的开发风格 。 无论使用Scala、Python还是Java编程程序都需要遵循Spark编程模型 , 考虑对Spark平台支持的有力程度来说 , Spark对Scala语言的支持是最好的 , 因为它有最丰富的和最易用的编程接口 。
本篇用词频统计实例展示Spark算法 。
01
词频统计描述
词频统计(WordCount)的主要功能是统计文本中某单词出现的次数 , 其形式如图8-5所示 。 
文章图片
▍图8-5词频统计
02
词频统计编程
1.单词文件sw.txt内容如下:
SparkPythonScala
HadoopSparkPython
2.上传sw.txt到HDFS:
#hdfsdfs-mkdir/input
#hdfsdfs-putsw.txt/input
3.运行Scala-IDE , 创建项目“WCPG”和类“WordCount.scala” , 如图8-6所示 。 
文章图片
▍图8-6Scala-IDE集成环境
Scala语言编写的WordCount.scala代码如下:
importorg.apache.spark.sql.SparkSession
objectWordCount{
defmain(args:Array[String]){
if(args.length<1){
System.err.println("Usage:WordCount<file>")
System.exit(1)
}
valspark=SparkSession
.builder
.appName("ScalaWordCount")
.getOrCreate
valline=spark.read.textFile(args(0)).rdd
line.flatMap(_.split("")).map((_,1))
.reduceByKey(_+_).collect.foreach(println)
spark.stop
}
}
4.在Scala-IDE中导出“WCPG.jar” 。
5.运行WCPG.jar:
#spark-submit--masterspark://master:7077
--classWordCountWCPG.jar/input
>WordCount.txt
6.查看WordCount运行结果如下:
#catWordCount.txt
(Spark,2)
(Python,2)
(Scala,1)
(Hadoop,1)
7.Python语言编写的WordCount.py代码如下:
from__future__importprint_function
importsys
fromoperatorimportadd
frompyspark.sqlimportSparkSession
if__name__=="__main__":
iflen(sys.argv)!=2:
print("Usage:wordcount<file>",file=sys.stderr)
exit(-1)
spark=SparkSession
.builder
.appName("PythonWordCount")
.getOrCreate
lines=spark.read.text(sys.argv[1]).rdd.map(lambdar:r[0])
counts=lines.flatMap(lambdax:x.split(''))
.map(lambdax:(x,1))
.reduceByKey(add)
output=counts.collect
for(word,count)inoutput:
print("%s:%i"%(word,count))
spark.stop
8.运行WordCount.py , 操作如下:
#spark-submit--masterspark://master:7077
--namePythonWCWordCount.py/input
>WordCount.txt
9.查看WordCount.py运行结果如下:
#catWordCount.txt
Python:2
Spark:2
Hadoop:1
Scala:1
03
参考书籍
《大数据技术与应用-微课视频版》
ISBN:978-7-302-53843-1
肖政宏李俊杰谢志明编著
定价:49.80元
文章图片
04
精彩文章回顾
Java15新增类Record的工作实例|附代码
Dart应用Bloc设计模式实例|附代码
从火种到能源 , 华为做AI的逻辑链
华为AI , 建造中的全景图
逻辑回归的MATLAB实践|附代码
Python爬虫实例:采集微博博文|附视频
【Spark算法实例:词频统计】MySQL利用E-R模型的数据库概念设计|附视频
HTML5实现黑白棋游戏附代码利用微信小程序实现活动报名登记|附代码使用Flutter小部件跨平台开发移动端App组件|附代码电脑病毒木马的清除和防范方法|附视频教你用Python做在线人脸检测
- 算法竞赛专题解析│四边形不等式优化
- 早春学王一博,将休闲混搭风穿出精致感,带来三个思路女生可参考时尚休闲的标杆休闲时尚风的三个要点:牛仔裤的搭配运动衫/连帽衫的时装休闲搭配实
- 从相机、算法到补光,vivo S9将自拍玩出新花样4400万像素前置双摄加持3D五重超质感美颜,天生丽质的自然美感极夜微缝式补光灯,夜景自拍新玩法结语
- iQOO 7游戏体验:它兼顾着多项只靠算法不能及的功能
- 破了这几种爬虫加密算法后,我的路更近了「JS逆向3」伪加密算法:信息摘要算法:MD5、SHA对称加密(加密解密密钥相同):DES、3DES、AES非对称加密(分公
- 小户型装修实例,墙布受欢迎,全屋颜值高!
- vivo X60 Pro微云台技术解析:联合蔡司、算法升级
- 算法竞赛专题解析│搜索基础
- 拆解YouTube新算法:这10条策略帮你打造爆款视频
- 日本网友实例分享 父母不要在孩子面前玩暴力游戏的原因
