文档章节

spark中reduce和reduceByKey的区别

牧师-Panda
 牧师-Panda
发布于 2017/08/19 16:20
字数 360
阅读 127
收藏 0

首先我们先讲讲两个函数在功能上的作用与区别是什么,然后我们再深入讨论两个函数在内部机理有什么不同。

reduce(binary_function) 

reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。

具体过程,RDD有1 2 3 4 5 6 7 8 9 10个元素, 
1+2=3 
3+3=6 
6+4=10 
10+5=15 
15+6=21 
21+7=28 
28+8=36 
36+9=45 
45+10=55

reduceByKey(binary_function)

reduceByKey就是对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。

那么讲到这里,差不多函数功能已经明了了,而reduceByKey的是如何运行的呢?下面这张图就清楚了揭示了其原理:

亦即,它会在数据搬移以前,提前进行一步reduce操作。

可以实现同样功能的还有GroupByKey函数,但是,groupbykey函数并不能提前进行reduce,也就是说,上面的处理过程会翻译成这样:

所以在处理大规模应用的时候,应该使用reduceByKey函数。

 

 

© 著作权归作者所有

共有 人打赏支持
牧师-Panda
粉丝 27
博文 146
码字总数 180044
作品 0
浦东
打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用

1.下载spark和运行 wget http://apache.fayea.com/apache-mirror/spark/spark-1.0.0/spark-1.0.0-bin-hadoop2.tgz 我这里下载的是1.0.0版,由于我们只是测试spark的用法所以不需要配置spark集...

豚鼠窝窝
2014/07/10
0
0
Spark与Hadoop计算模型的比较分析

Spark与Hadoop计算模型的比较分析 最近很多人都在讨论Spark这个貌似通用的分布式计算模型,国内很多机器学习相关工作者都在研究和使用它。   Spark是一个通用的并行计算框架,由UCBerkele...

jmppok
2015/03/25
0
0
最最简单的~WordCount¬

sc.textFile("hdfs://....").flatMap(line =>line.split(" ")).map(w =>(w,1)).reduceByKey(+).foreach(println) 不使用reduceByKey sc.textFile("hdfs://....").flatMap(l=>l.split(" ")).m......

雪童子
2015/10/21
0
0
Spark初识入门core (一)

Spark初识入门core (一) 标签(空格分隔): Spark的部分 一:spark 简介 1.1 spark 的来源 Hive Storm Mahout Griph Spark Core Spark SQL Spark Streaming Spark ML Spark GraphX Spark......

flyfish225
05/07
0
0
spark内核揭秘-01-spark内核核心术语解析

Application: Application是创建了SparkContext实例对象的spark用户,包含了Driver程序: Spark-shell是一个应用程序,因为spark-shell在启动的时候创建了一个SparkContext对象,其名称为sc:...

stark_summer
2015/01/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

新工作与老项目

新的工作不知不觉的干了一个多月了。怎么说呢,跟想象中的差别不少,本来想的能进来跟大公司的同事能有很多交流,能在团队中跟大牛学习更快。结果公司的这个项目上只有两个程序员,项目是十年...

zypy333
12分钟前
0
0
mysql 在windows的安装

mysql 在windows的安装。 mysql64位的server的下载地址是: https://dev.mysql.com/downloads/mysql/ 使用的是5.7版本。 下载安装包,解压至D:\mysql\mysql-5.7.23-winx64\ 在D:\mysql\mysq...

lxzh504
24分钟前
1
0
云技术、大数据(hadoop)入门常见问题回答

当我们学习一门新技术的时候,我们总是产生各种各样的问题,这些问题整理出来,包括该 1.如何学习hadoop? 2.hadoop常见问题? 3.还有hbase、hive安装使用等? 你知道搭建hadoop平台需要些什...

董黎明
25分钟前
1
0
小程序自定义底部tab

场景 1.tabBar是在内页而非首页,这时就不得不自定义一个tabBar了 2.自定义风格 3.子页数量超过5个,得到更多了tab 4.改变点击tab默认事件,比如出登录界面,或者弹出上拉子菜单等 步骤 1.照...

萤火的萤火
30分钟前
1
0
shell炫技

1.为脚本添加“--help” #!/bin/shif [ ${#@} -ne 0 ] && [ "${@#"--help"}" = "" ]; then printf -- '...help...\n'; exit 0;fi; 2.输出字体添加颜色 https://misc.flogisoft.com......

HJCui
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部