文档章节

spark中reduce和reduceByKey的区别

牧师-Panda
 牧师-Panda
发布于 2017/08/19 16:20
字数 360
阅读 225
收藏 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
粉丝 32
博文 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
最最简单的~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与Hadoop计算模型的比较分析

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

jmppok
2015/03/25
0
0
spark内核揭秘-01-spark内核核心术语解析

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

stark_summer
2015/01/18
0
0
Spark学习记录(一)Spark 环境搭建以及worldCount示例

安装Spark ------------------- 首先,安装spark之前需要先安装scala,并且安装scala的版本一定要是将要安装的spark要求的版本。比如spark2.1.0 要求scala 2.11系列的版本,不能多也不能少 ...

我爱春天的毛毛雨
11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

用PyTorch创建一个图像分类器?So easy!(Part 1)

摘要: 本文将为你介绍为何要重用神经网络?哪部分可以重用,哪部分不可以重用。了解完这些基础概念,你就可以自行创建一个图像分类器了。 经过了几个月的学习和实践,我完成了优达学城网站上...

阿里云官方博客
4分钟前
0
0
ssh使用正确的密码登录服务器被拒绝

1、用一个普通用户登录服务器被拒绝。 2、在服务器上,tail -f /var/log/secure, 看到: Dec 19 11:03:20 mmi5 sshd[11126]: pam_tally2(sshd:auth): user carrot (1003) tally 144, deny 3 ......

gelare
5分钟前
0
0
基于腾讯AI Lab词向量进行未知词、短语向量补齐与域内相似词搜索

AI Lab开源大规模高质量中文词向量数据,800万中文词随你用,质量非常高,就是一个词向量.txt文件都有16G之多,太夸张了。。不过的确非常有特点: ⒈ 覆盖率(Coverage): 该词向量数据包含...

火力全開
7分钟前
0
0
Shiro简介——《跟我学Shiro》

1、《跟我学Shiro》PDF完结版下载 2、shiro简介——《跟我学Shiro》 3、shiro demo

近在咫尺远在天涯
8分钟前
0
0
教你一个vue小技巧,一般人我不说的

本文由云+社区发表 1. 需求 最近的项目中,需要实现在vue框架中动态渲染带提示框的单选/多选文本框,具体的效果如下图所示,在输入框聚焦时,前端组件通过接收的kv参数渲染出选项,用户点击选...

腾讯云加社区
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部