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、一步搞定词频统计

  • 执行命令
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的基本操作有了更深入的了解,为后续的学习和实践打下了基础。

相关推荐

  1. Spark大数据 IDEA开发词频统计项目

    2024-04-03 08:38:01       10 阅读
  2. Python词频统计

    2024-04-03 08:38:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 08:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 08:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 08:38:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 08:38:01       20 阅读

热门阅读

  1. 上传.PDF文件转为.DOCX文件

    2024-04-03 08:38:01       17 阅读
  2. 音响或耳机音频处理常用的芯片

    2024-04-03 08:38:01       17 阅读
  3. 微信小程序中路由跳转方式

    2024-04-03 08:38:01       21 阅读
  4. Python网络爬虫(二):Requests库

    2024-04-03 08:38:01       11 阅读
  5. SQLAlchemy 的数据库引擎engine与连接对象Connection

    2024-04-03 08:38:01       17 阅读
  6. Knife4j配置使用笔记

    2024-04-03 08:38:01       15 阅读
  7. nodejs的express负载均衡

    2024-04-03 08:38:01       15 阅读
  8. 每天学习一个Linux命令之dpkg

    2024-04-03 08:38:01       16 阅读
  9. linux扩展正则表达式之+

    2024-04-03 08:38:01       12 阅读
  10. JVM中一次完整的 GC 流程

    2024-04-03 08:38:01       17 阅读
  11. 2023年网络安全领域新兴技术的发展特点

    2024-04-03 08:38:01       15 阅读