Spark中使用RDD算子GroupBy做词频统计的方法

测试文件及环境

测试文件在本地D://tmp/spark.txt,Spark采用Local模式运行,Spark版本3.2.0,Scala版本2.12,集成idea开发环境。

复制代码
hello
world
java
world
java
java

实验代码

scala 复制代码
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object GroupBy {
  def main(args: Array[String]): Unit = {
  	// 创建Spark执行环境
    val sparkConf: SparkConf =
      new SparkConf().setMaster("local").setAppName("GroupBy")
    // 新建会话
    val sc = new SparkContext(sparkConf)
	// 读取本地文件到RDD
    val rdd: RDD[String] = sc.textFile("D://tmp/spark.txt")
    // 对rdd做map映射,返回(hello,1)...
    val rdd2: RDD[(String, Int)] = rdd.map(v => {
      val arr: Array[String] = v.split("\t")
      (arr(0), 1)
    })
	// 打印map映射结果
    rdd2.foreach(v=>println(v))

	// 对rdd2进行groupBy操作
    val rdd3: RDD[(String, Iterable[(String, Int)])] = rdd2.groupBy(v => v._1)
    // 遍历打印最终结果
    rdd3.map(v => (v._1, v._2.size)).foreach(v => println(v))
	//结束Spark会话
    sc.stop()
  }
}

实验结果

打印map映射结果

复制代码
(hello,1)
(world,1)
(java,1)
(world,1)
(java,1)
(java,1)

(hello,1)
(java,3)
(world,2)
相关推荐
B站_计算机毕业设计之家1 天前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业
大数据001 天前
CLICKHOUSE分布式表初体验
分布式·clickhouse
失散131 天前
分布式专题——43 ElasticSearch概述
java·分布式·elasticsearch·架构
Apache Flink1 天前
Flink Agents 0.1.0 发布公告
大数据·flink
潘达斯奈基~1 天前
在使用spark的applyInPandas方法过程中,遇到类型冲突问题如何解决
大数据·笔记
爬山算法1 天前
Redis(66)Redis如何实现分布式锁?
数据库·redis·分布式
火星资讯1 天前
腾多多数字零售模式:从成本转嫁到全生态共赢的破局实践
大数据
望获linux1 天前
【实时Linux实战系列】实时 Linux 的自动化基准测试框架
java·大数据·linux·运维·网络·elasticsearch·搜索引擎
W.Buffer1 天前
Kafka零拷贝原理深度解析:从传统拷贝痛点到工作实践优化
分布式·kafka
金宗汉1 天前
《宇宙递归拓扑学:基于自指性与拓扑流形的无限逼近模型》
大数据·人工智能·笔记·算法·观察者模式