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

大数据常用语言Scala(二十七):函数式编程 聚合操作

时间:2024-01-13 08:07:48

相关推荐

大数据常用语言Scala(二十七):函数式编程 聚合操作

目录

聚合操作

聚合 reduce

定义

案例

折叠 fold

定义

案例

聚合操作

聚合操作,可以将一个列表中的数据合并为一个。这种操作经常用来统计分析中

聚合 reduce

reduce表示将列表,传入一个函数进行聚合计算

定义

方法签名

defreduce[A1 >:A](op:(A1,A1)⇒ A1):A1

方法解析

reduce执行流程分析

[!NOTE]

reduce和reduceLeft效果一致,表示从左到右计算reduceRight表示从右到左计算

案例

定义一个列表,包含以下元素:1,2,3,4,5,6,7,8,9,10

使用reduce计算所有元素的和

参考代码

scala>vala =List(1,2,3,4,5,6,7,8,9,10)a:List[Int]=List(1,2,3,4,5,6,7,8,9,10)scala>a.reduce((x,y)=>x +y)res5:Int=55// 第一个下划线表示第一个参数,就是历史的聚合数据结果// 第二个下划线表示第二个参数,就是当前要聚合的数据元素scala>a.reduce(_ +_)res53:Int=55// 与reduce一样,从左往右计算scala>a.reduceLeft(_ +_)res0:Int=55// 从右往左聚合计算scala>a.reduceRight(_ +_)res1:Int=55

折叠 fold

fold与reduce很像,但是多了一个指定初始值参数

定义

方法签名

deffold[A1 >:A](z:A1)(op:(A1,A1)⇒ A1):A1

方法解析

[!NOTE]

fold和foldLet效果一致,表示从左往右计算foldRight表示从右往左计算

案例

定义一个列表,包含以下元素:1,2,3,4,5,6,7,8,9,10

使用fold方法计算所有元素的和

参考代码

scala>vala =List(1,2,3,4,5,6,7,8,9,10)a:List[Int]=List(1,2,3,4,5,6,7,8,9,10)scala>a.fold(0)(_ +_)res4:Int=155

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