2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy
生活随笔
收集整理的這篇文章主要介紹了
2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
分組? groupBy
定義
示例
分組? groupBy
我們如果要將數(shù)據(jù)按照分組來進行統(tǒng)計分析,就需要使用到分組方法
等同于SQL中的 group by的概念, 就是給數(shù)據(jù)按照指定的列進行分組用。
?
定義
groupBy表示按照函數(shù)將列表分成不同的組
方法簽名
def?groupBy[K](f:?(A)?? K):?Map[K,?List[A]]
方法解析
| groupBy方法 | API | 說明 |
| 泛型 | [K] | 分組字段的類型 |
| 參數(shù) | f: (A) ? K | 傳入一個函數(shù)對象<br />接收集合元素類型的參數(shù)<br />返回一個K類型的key,這個key會用來進行分組,相同的key放在一組中 |
| 返回值 | Map[K, List[A]] | 返回一個映射,K為分組字段,List為這個分組字段對應的一組數(shù)據(jù) |
?
groupBy執(zhí)行過程分析
?
示例
有一個列表,包含了學生的姓名和性別:
"張三",?"男"
"李四",?"女"
"王五",?"男"
請按照性別進行分組,統(tǒng)計不同性別的學生人數(shù)
?
步驟
定義一個元組列表來保存學生姓名和性別
按照性別進行分組
將分組后的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((李四,女)))// 將分組后的映射轉換為性別/人數(shù)元組列表
scala>?res0.map(x =>?x._1 ->?x._2.size)
res3:?scala.collection.immutable.Map[String,Int]?=?Map(男 ->?2,?女 ->?1)
?
總結
以上是生活随笔為你收集整理的2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据常用语言Scala(二十
- 下一篇: 2021年大数据常用语言Scala(二十