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)
相关推荐
滴图服务-七七17 小时前
滴滴地图:精准定位赋能企业数字化转型
大数据·人工智能·地图服务·甲级测绘资质·商业授权
科技互联.1 天前
破解数据治理效率瓶颈:2026年Data Agent驱动的数据中台能力横向测评
大数据
DataX_ruby821 天前
2026年数据中台厂商市场份额分析
大数据·人工智能·数据治理·数据中台
汉知宝科技1 天前
跨境电商品牌合规:出海企业商标管理的特殊挑战与数字化应对
大数据·人工智能
真上帝的左手1 天前
19. 大数据-数据治理-体系建设全流程
大数据·数据治理
小熊美家熊猫系统1 天前
电子合同技术实现与合规实践
java·开发语言·分布式
❀抽抽1 天前
证件照制作API接入指南:700+规格一键生成
大数据·网络·人工智能
Promise微笑1 天前
绝缘油介损(油介损)测试仪的深层机理、技术演进与精准诊断策略
大数据·网络·人工智能
大C聊AI1 天前
通用大模型纷纷收费,垂直场景AI工具的价值正在被重估
大数据·人工智能·机器学习·办公效率·ai 工具·智标领航·ai 辅助办公
让学习成为一种生活方式1 天前
植物基因组数据共享:呼吁全面开放获取--文献精读244
大数据