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)
相关推荐
Coder个人博客10 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
心态还需努力呀13 小时前
CANN仓库通信库:分布式训练的梯度压缩技术
分布式·cann
财经三剑客15 小时前
AI元年,春节出行安全有了更好的答案
大数据·人工智能·安全
岁岁种桃花儿15 小时前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
TOPGUS15 小时前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
2501_9336707916 小时前
2026 高职大数据与会计专业零基础能考的证书有哪些?
大数据
ClouderaHadoop16 小时前
CDH集群机房搬迁方案
大数据·hadoop·cloudera·cdh
TTBIGDATA16 小时前
【Atlas】Ambari 中 开启 Kerberos + Ranger 后 Atlas Hook 无权限访问 Kafka Topic:ATLAS_HOOK
大数据·kafka·ambari·linq·ranger·knox·bigtop
程序员清洒17 小时前
CANN模型部署:从云端到端侧的全场景推理优化实战
大数据·人工智能
Coder_Boy_17 小时前
基于SpringAI的在线考试系统-相关技术栈(分布式场景下事件机制)
java·spring boot·分布式·ddd