1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 大数据常用语言Scala(二十六):函数式编程 分组 groupBy

大数据常用语言Scala(二十六):函数式编程 分组 groupBy

时间:2021-10-28 02:54:46

相关推荐

大数据常用语言Scala(二十六):函数式编程 分组 groupBy

目录

分组 groupBy

定义

示例

分组 groupBy

我们如果要将数据按照分组来进行统计分析,就需要使用到分组方法

等同于SQL中的 group by的概念, 就是给数据按照指定的列进行分组用。

定义

groupBy表示按照函数将列表分成不同的组

方法签名

defgroupBy[K](f:(A)⇒ K):Map[K,List[A]]

方法解析

groupBy执行过程分析

示例

有一个列表,包含了学生的姓名和性别:

"张三","男"

"李四","女"

"王五","男"

请按照性别进行分组,统计不同性别的学生人数

步骤

定义一个元组列表来保存学生姓名和性别

按照性别进行分组

将分组后的Map转换为列表:List(("男" -> 2), ("女" -> 1))

参考代码

scala>vala =List("张三"->"男","李四"->"女","王五"->"男")a:List[(String,String)]=List((张三,男),(李四,女),(王五,男))// 按照性别分组scala>a.groupBy(_._2)res0:scala.collection.immutable.Map[String,List[(String,String)]]=Map(男 ->List((张三,男),(王五,男)),女 ->List((李四,女)))// 将分组后的映射转换为性别/人数元组列表scala>res0.map(x =>x._1 ->x._2.size)res3:scala.collection.immutable.Map[String,Int]=Map(男 ->2,女 ->1)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。