Spark RDD中的aggregate函数 -JAVA8 lambda风格实现求平均数(不用mean函数)
来源:互联网 发布:帝国cms 搜索代码 编辑:程序博客网 时间:2024/06/04 19:55
先转载一篇文章,好好看,看明白了我们再看实现--
http://blog.csdn.net/qingyang0320/article/details/51603243
http://blog.csdn.net/a1628864705/article/details/52476161
下面我们用Java 8 lambda表达式实现:
package test;import java.util.ArrayList;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import scala.Tuple2;public class Test { public static void main(String[] args) { SparkConf conf = new SparkConf(); conf.setAppName("Word count"); conf.setMaster("local[2]"); @SuppressWarnings("resource") JavaSparkContext sc = new JavaSparkContext(conf); ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); //初始化Rdd JavaRDD<Integer> rdd = sc.parallelize(list); //第二和第三个参数为函数的匿名实现(lambda形式 ) Tuple2<Double, Integer> t = rdd.aggregate(new Tuple2<Double, Integer>(0.0, 0), (x,y)->new Tuple2<Double, Integer>(x._1+y,x._2+1), (x,y)->new Tuple2<Double, Integer>(x._1+y._1,x._2+y._2)); System.out.println(t._1/t._2); }}
aggregate(T,(T,U)->T,(T,T)->T)
第一个参数为后面计算中的初始值,和返回值同类型;
第二个参数,在单个分区中,用初始值和该分区第一个元素进行求值,然后把结果迭代运行到该分区计算结束,返回该分区的计算值)
第三个参数,第二个函数中计算的个分区的结果,再进行求值(这里就是求和(sum相加,数量相加)),返回最终结果
得到结果
System.out.println(t._1/t._2);
0 0
- Spark RDD中的aggregate函数 -JAVA8 lambda风格实现求平均数(不用mean函数)
- 理解Spark RDD中的aggregate函数
- 理解Spark RDD中的aggregate函数
- Spark函数讲解:aggregate
- spark函数讲解:aggregate
- spark aggregate函数详解
- Spark SQL中的聚合(Aggregate)实现
- pyspark aggregate函数使用问题(aggregate重写,aggregate中的函数参数限制)
- 写一个函数求平均数
- matlab中的mean函数
- MATLAB中的mean函数
- numpy中的mean()函数
- Spark RDD的aggregate算子
- spark rdd aggregate (python语言)
- java8 lambda表达式-函数接口
- Java8---Lambda函数编程练习
- Matlab求平均值函数mean
- Spark RDD操作函数说明
- 01背包模板动态规划
- 117. Populating Next Right Pointers in Each Node II
- VC++ 数据 写入EXCEL文档
- Android案例—装备选择
- java多线程--停止一个线程的方法小结(来自java多线程编程核心技术)
- Spark RDD中的aggregate函数 -JAVA8 lambda风格实现求平均数(不用mean函数)
- leetcode 104. Maximum Depth of Binary Tree
- Lucene初探之索引过程分析(一)
- Struts2 环境搭建
- HashMap、weakHashMap、LinkedHashMap和TreeMap四者区别与联系
- 内核链表
- nginx
- 序列长度 差分约束
- 《Linux内核分析》MOOC课程第五次实验作业