2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy
目录
分组 groupBy
定义
示例
分组 groupBy
我们如果要将数据按照分组来进行统计分析,就需要使用到分组方法
等同于SQL中的 group by的概念, 就是给数据按照指定的列进行分组用。
定义
groupBy表示按照函数将列表分成不同的组
方法签名
def groupBy[K](f: (A) ⇒ K): Map[K, List[A]]
方法解析
groupBy方法 |
API |
说明 |
泛型 |
[K] |
分组字段的类型 |
参数 |
f: (A) ⇒ K |
传入一个函数对象<br />接收集合元素类型的参数<br />返回一个K类型的key,这个key会用来进行分组,相同的key放在一组中 |
返回值 |
Map[K, List[A]] |
返回一个映射,K为分组字段,List为这个分组字段对应的一组数据 |
groupBy执行过程分析
示例
有一个列表,包含了学生的姓名和性别:
"张三", "男"
"李四", "女"
"王五", "男"
请按照性别进行分组,统计不同性别的学生人数
步骤
定义一个元组列表来保存学生姓名和性别
按照性别进行分组
将分组后的Map转换为列表:List(("男" -> 2), ("女" -> 1))
参考代码
scala> val a = 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)
2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy相关推荐
- 2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握
目录 列表 List 重点掌握 不可变列表定义 可变列表 列表常用操作 列表 List 重点掌握 列表是scala中最重要的.也是最常用的数据结构.List具备以下性质: 可以保存重复的值 有先后顺序 ...
- 2021年大数据常用语言Scala(十四):基础语法学习 数组 重点掌握
目录 数组 重点掌握 定长数组 变长数组 遍历数组 数组常用算法 数组 重点掌握 scala中数组的概念是和Java类似,可以用数组来存放一组数据.scala中,有两种数组,一种是定长数组,另一种 ...
- 2021年大数据常用语言Scala(十二):基础语法学习 方法调用方式
目录 方法调用方式 后缀调用法 中缀调用法 操作符即方法 花括号调用法 无括号调用法 方法调用方式 在scala中,有以下几种方法调用方式, 后缀调用法 中缀调用法 花括号调用法 无括号调用法 在后续 ...
- 2021年大数据常用语言Scala(十八):基础语法学习 Map对象
目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...
- 2021年大数据常用语言Scala(十五):基础语法学习 元组 重点掌握
目录 元组 重点掌握 定义元组 访问元组 元组 重点掌握 元组可以用来包含一组不同类型的值.例如:姓名,年龄,性别,出生年月.元组的元素是不可变的. 数组: 同一类数据成组 元组: 不同的元素成组 ...
- 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器
目录 iterator迭代器 使用迭代器遍历集合 iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可 ...
- 2021年大数据常用语言Scala(十):基础语法学习 方法
目录 方法 定义方法 返回值类型推断 方法 一个类可以有自己的方法,scala中的方法和Java方法类似.但scala与Java定义方法的语法是不一样的. 定义方法 语法 def methodName ...
- 2021年大数据常用语言Scala(二十):函数式编程 介绍
目录 函数式编程 介绍 函数式编程的意义在哪? 函数式编程 介绍 我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程.下面的这些操作是学习的重点. 现在我们将会逐渐接触函数式编程的方 ...
- 2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach
目录 遍历 foreach 使用类型推断简化函数定义 使用下划线来简化函数定义 遍历 foreach 之前,学习过了使用for表达式来遍历集合.我们接下来将学习scala的函数式编程,使用fore ...
最新文章
- DRF序列化和反序列化
- 得到一个数组里面相同元素的个数
- js前端实现模糊查询
- 定义一个计算字符串有效长度的_一个正方形的小抽屉柜,根据设计草图计算出所需四片木板的长度...
- 北京 | 免费高效训练及OpenVINO™加速推理深度学习实战,送Intel神经计算棒二代...
- boost::hana::index_if用法的测试程序
- Python slice() 函数
- 安装配置ASMlib驱动
- 儿童卫士360智能手表,给孩子更多保护
- Android用户界面设计:基本按钮
- 刀下留人--苹果开发者账号封号前挽救
- 电解电容封装尺寸(插件)
- ZigBee Z-Stack 2.04 IAR软件版本
- MySQL 查询统计订单
- ThinkPHP在线小说阅读管理系统
- vue3+vite2多页面多路由 注意
- bubu PC端的应用商店3 - 安全性
- 深度学习系列错误笔记(一)之print(‘gpu‘,torch.cuda.is_available())输出gpu False
- R tidyverse学习01
- UWB定位matlab代码及详细解析(附github下载链接)
热门文章
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
- 无需自己输入include这些的方法
- 2022-2028年中国自动驾驶系统行业现状调研分析报告
- 2022-2028年中国再生天然橡胶行业市场调查分析及未来前景分析报告
- 2022-2028年中国丙烯酸酯橡胶行业市场深度分析及投资前景分析报告
- c语言和c++字符串操作对比
- python读取xml文件报错ValueError: multi-byte encodings are not supported
- NLP进阶之(七)膨胀卷积神经网络
- 如何写新的Python OP
- 摄像头标定GML Camera Calibration