Spark实战:词频统计

文章目录

一、Spark实战:词频统计

(一)Scala版

1、分步完成词频统计

(1)基于文本文件创建RDD

  • 执行命令:val lines = sc.textFile("/home/test.txt")

(2)按空格拆分作扁平化映射

  • 执行命令:val words = lines.flatMap(_.split(" "))

(3)将单词数组映射成二元组数组

  • 执行命令:val tuplewords = words.map((_, 1))

(4)将二元组数组按键归约

  • 执行命令:val wordcount = tuplewords.reduceByKey(_ + _)

(5)将词频统计结果按次数降序排列

  • 执行命令:val sortwordcount = wordcount.sortBy(_._2, false)

2、一步搞定词频统计

  • 执行命令:sc.textFile("/home/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).sortBy(_._2, false).collect.foreach(println)

(二)Python版

1、分步完成词频统计

(1)基于文本文件创建RDD

  • 执行命令:lines = sc.textFile("/home/test.txt")

(2)按空格拆分作扁平化映射

  • 执行命令:words = lines.flatMap(lambda line : line.split(' '))

(3)将单词数组映射成二元组数组

  • 执行命令:tuplewords = words.map(lambda word : (word, 1))

(4)将二元组数组按键归约

  • 执行命令:wordcount = tuplewords.reduceByKey(lambda a, b : a + b)

(5)将词频统计结果按次数降序排列

  • 执行命令:sortwordcount = wordcount.sortBy(lambda wc : wc[1], False)

2、一步搞定词频统计

  • 执行命令
python 复制代码
for line in sc.textFile('/home/test.txt').flatMap(lambda line : line.split(' ')).map(lambda word : (word, 1)).reduceByKey(lambda a, b : a + b).sortBy(lambda tup : tup[1], False).collect():
    print(line)

二、实战总结

  • 在Spark实战中,我们通过Scala和Python两个版本分别实现了词频统计的功能。首先,我们从文本文件中创建了RDD,然后按空格拆分进行扁平化映射,接着将单词数组映射成二元组数组,之后对二元组数组进行按键归约,最后将词频统计结果按次数降序排列。在分步实现的基础上,我们还可以通过一步命令直接完成整个流程。通过这次实战,我们对Spark的基本操作有了更深入的了解,为后续的学习和实践打下了基础。
相关推荐
hixiong1232 小时前
C# OpenCVSharp使用 读光-票证检测矫正模型
人工智能·opencv·c#
霜绛2 小时前
C#知识补充(二)——命名空间、泛型、委托和事件
开发语言·学习·unity·c#
好望角雾眠3 小时前
第四阶段C#通讯开发-6:Socket之UDP
开发语言·笔记·学习·udp·c#
霜绛4 小时前
C#知识补充(一)——ref和out、成员属性、万物之父和装箱拆箱、抽象类和抽象方法、接口
开发语言·笔记·学习·c#
爱编程的鱼4 小时前
C# var 关键字详解:从入门到精通
开发语言·c#·solr
玩泥巴的6 小时前
解放双手!使用Roslyn生成代码让你的 HTTP 客户端开发变得如此简单
c#·.net·代码生成·roslyn
星释7 小时前
Rust 练习册 :Pig Latin与语言游戏
游戏·rust·c#
蒲公英源码8 小时前
超市进销存源码
sqlserver·c#·.net
青云交9 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用
java·spark·lstm·可视化·java 大数据·空气质量监测·污染溯源
Lansonli12 小时前
大数据Spark(七十二):Transformation转换算子repartition和coalesce使用案例
大数据·分布式·spark