51_集合_MapReduceComplex(预聚合)
import scala.collection.mutable object MapReduceComplex extends App { var tp1 = ("Hello Scala Spark World ", 4) var tp2 = ("Hello Scala Spark", 3) var tp3 = ("Hello Scala", 2) var tp4 = ("Hello", 1) //1.数据准备 val tupleList = List(tp1, tp2, tp3, tp4) println("tupleList : ", tupleList) //2.拆分 def splitRule(tp: (String, Int)) = { var map: mutable.Map[String, Int] = mutable.Map() for (key <- tp._1.split(" ")) { map.update(key, tp._2) } map } var list1 = tupleList.map(splitRule) println("list1 : " + list1) //3.拉平 var list2 = list1.flatten println("list2 : ", list2) //4.分组 //def groupRule(tp: (String, Int)) = tp._1 var list3 = list2.groupBy(tp => tp._1) println("list3 : " + list3) //5.计数 map的map函数接收的是一个二元组 def sumRule(tp: (String, List[(String, Int)])) = { var sum = 0 for (e <- tp._2) { sum += e._2 } (tp._1, sum) } var list4 = list3.map(sumRule _) println(list4) //6.排序 var list5 = list4.toList.sortBy(tp => tp._2) println(list5) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界