目录

分组  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相关推荐

  1. 2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握

    目录 列表 List 重点掌握 不可变列表定义 可变列表 列表常用操作 列表 List 重点掌握 列表是scala中最重要的.也是最常用的数据结构.List具备以下性质: 可以保存重复的值 有先后顺序 ...

  2. 2021年大数据常用语言Scala(十四):基础语法学习 数组  重点掌握

    目录 数组  重点掌握 定长数组 变长数组 遍历数组 数组常用算法 数组  重点掌握 scala中数组的概念是和Java类似,可以用数组来存放一组数据.scala中,有两种数组,一种是定长数组,另一种 ...

  3. 2021年大数据常用语言Scala(十二):基础语法学习 方法调用方式

    目录 方法调用方式 后缀调用法 中缀调用法 操作符即方法 花括号调用法 无括号调用法 方法调用方式 在scala中,有以下几种方法调用方式, 后缀调用法 中缀调用法 花括号调用法 无括号调用法 在后续 ...

  4. 2021年大数据常用语言Scala(十八):基础语法学习 Map对象

    目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...

  5. 2021年大数据常用语言Scala(十五):基础语法学习 元组  重点掌握

    目录 元组  重点掌握 定义元组 访问元组 元组  重点掌握 元组可以用来包含一组不同类型的值.例如:姓名,年龄,性别,出生年月.元组的元素是不可变的. 数组: 同一类数据成组 元组: 不同的元素成组 ...

  6. 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器

    目录 iterator迭代器 使用迭代器遍历集合 iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可 ...

  7. 2021年大数据常用语言Scala(十):基础语法学习 方法

    目录 方法 定义方法 返回值类型推断 方法 一个类可以有自己的方法,scala中的方法和Java方法类似.但scala与Java定义方法的语法是不一样的. 定义方法 语法 def methodName ...

  8. 2021年大数据常用语言Scala(二十):函数式编程 介绍

    目录 函数式编程 介绍 函数式编程的意义在哪? 函数式编程 介绍 我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程.下面的这些操作是学习的重点. 现在我们将会逐渐接触函数式编程的方 ...

  9. 2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach

    目录 遍历  foreach 使用类型推断简化函数定义 使用下划线来简化函数定义 遍历  foreach 之前,学习过了使用for表达式来遍历集合.我们接下来将学习scala的函数式编程,使用fore ...

最新文章

  1. DRF序列化和反序列化
  2. 得到一个数组里面相同元素的个数
  3. js前端实现模糊查询
  4. 定义一个计算字符串有效长度的_一个正方形的小抽屉柜,根据设计草图计算出所需四片木板的长度...
  5. 北京 | 免费高效训练及OpenVINO™加速推理深度学习实战,送Intel神经计算棒二代...
  6. boost::hana::index_if用法的测试程序
  7. Python slice() 函数
  8. 安装配置ASMlib驱动
  9. 儿童卫士360智能手表,给孩子更多保护
  10. Android用户界面设计:基本按钮
  11. 刀下留人--苹果开发者账号封号前挽救
  12. 电解电容封装尺寸(插件)
  13. ZigBee Z-Stack 2.04 IAR软件版本
  14. MySQL 查询统计订单
  15. ThinkPHP在线小说阅读管理系统
  16. vue3+vite2多页面多路由 注意
  17. bubu PC端的应用商店3 - 安全性
  18. 深度学习系列错误笔记(一)之print(‘gpu‘,torch.cuda.is_available())输出gpu False
  19. R tidyverse学习01
  20. UWB定位matlab代码及详细解析(附github下载链接)

热门文章

  1. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
  2. 无需自己输入include这些的方法
  3. 2022-2028年中国自动驾驶系统行业现状调研分析报告
  4. 2022-2028年中国再生天然橡胶行业市场调查分析及未来前景分析报告
  5. 2022-2028年中国丙烯酸酯橡胶行业市场深度分析及投资前景分析报告
  6. c语言和c++字符串操作对比
  7. python读取xml文件报错ValueError: multi-byte encodings are not supported
  8. NLP进阶之(七)膨胀卷积神经网络
  9. 如何写新的Python OP
  10. 摄像头标定GML Camera Calibration