2 Spark入门reduce、reduceByKey的操作
上一篇是讲map,map的主要作用就是替换。reduce的主要作用就是计算。
package reduce;import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import scala.Tuple2;import java.util.Arrays;
import java.util.List;/*** @author wuweifeng wrote on 2018/4/13.*/
public class SimpleReduce {public static void main(String[] args) {SparkSession sparkSession = SparkSession.builder().appName("JavaWordCount").master("local").getOrCreate();//spark对普通List的reduce操作JavaSparkContext javaSparkContext = new JavaSparkContext(sparkSession.sparkContext());List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);JavaRDD<Integer> originRDD = javaSparkContext.parallelize(data);Integer sum = originRDD.reduce((a, b) -> a + b);System.out.println(sum);//reduceByKey,按照相同的key进行reduce操作List<String> list = Arrays.asList("key1", "key1", "key2", "key2", "key3");JavaRDD<String> stringRDD = javaSparkContext.parallelize(list);//转为key-value形式JavaPairRDD<String, Integer> pairRDD = stringRDD.mapToPair(k -> new Tuple2<>(k, 1));List list1 = pairRDD.reduceByKey((x, y) -> x + y).collect();System.out.println(list1);}
}
代码很简单,第一个就是将各个数累加。reduce顺序是1+2,得到3,然后3+3,得到6,然后6+4,依次进行。
第二个是reduceByKey,就是将key相同的键值对,按照Function进行计算。代码中就是将key相同的各value进行累加。结果就是[(key2,2), (key3,1), (key1,2)]
2 Spark入门reduce、reduceByKey的操作相关推荐
- java reducebykey_Spark入门(五)--Spark的reduce和reduceByKey
reduce和reduceByKey的区别 reduce和reduceByKey是spark中使用地非常频繁的,在字数统计中,可以看到reduceByKey的经典使用.那么reduce和reduceB ...
- spark 的reduce操作
spark的reduce聚合操作,输入是两个值,输出是一个值,第一第二个值的结果跟第三个值相加,然后前n个数的值和第n个值相加 见代码如下: public static void myReduce() ...
- Spark入门系列(二)| 1小时学会RDD编程
作者 | 梁云1991 转载自Python与算法之美(ID:Python_Ai_Road) 导读:本文为 Spark入门系列的第二篇文章,主要介绍 RDD 编程,实操性较强,感兴趣的同学可以动手实现一 ...
- Spark入门(Python)
Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到"大数据(Big Data)"广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰 ...
- Spark入门阶段一之扫盲笔记
介绍 spark是分布式并行数据处理框架 与mapreduce的区别: mapreduce通常将中间结果放在hdfs上,spark是基于内存并行大数据框架,中间结果放在内存,对于迭代数据spark效率 ...
- Spark入门(Python版)
Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到"大数据(Big Data)"广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰 ...
- Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.Spark Streaming简介 1.1 概述 Spark Streaming 是Sp ...
- Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spa ...
- 数据分析从零到精通第二课 Hive和Spark入门
03 离线利器:大数据离线处理工具 Hive 的常用技巧 今天为你介绍数据分析师最常用的数据处理工具 Hive 的一些使用技巧.这些技巧我们在工作中使用得比较频繁,如果运用得当,将为我们省去不少时间精 ...
最新文章
- 西门子PLC学习笔记二-(工作记录)
- CodeForces 86 D Powerful array 莫队
- 第二次作业 郭昭杰 201731062608
- 摩托罗拉移动员裁员重点是研发
- python可以直接打印中午吗_Python print不能立即打印的解决方式
- 3.1.4 操作系统之内存的分配与回收
- windows - mysql
- PrimeFaces在GlassFish 3.1.2.2上推动大气
- 人民邮电出版社图灵公司的两本SQL Server 2005图书诚征译者
- Ajax无刷新数据绑定
- linux 截图软件安装,Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
- 百度地图、腾讯地图坐标转换
- 苹果手机备份数据到电脑什么位置 iPhone备份到电脑上的东西在哪里
- 慕课网-哒哒租车系统
- Chap.16 总结《CL: An Introduction》 (Vyvyan Evans)
- FB_LLC 死区时间计算(保证ZVS)
- NUIST2022级第一周集训
- 在html中超链接的标记是,在HTML代码中,超链接元素的标记是什么?
- 老司机带你快速熟悉Swift 4.1(一)
- 机器学习(周志华)算法目录