例子一

按key求和
val rdd = sc.parallelize(List((“a”,2),(“b”,3),(“a”,3)))

合并key计算
val r1 = rdd.reduceByKey((x,y) => x + y)

输出结果如下

(a,5)
(b,3)

例子二

若有一些spark书和Hadoop的书, 要求两本书各自销量的平均值
数据如下

("spark",10)
("spark",20)
("hadoop",4)
("hadoop",10)

先创建一个rdd

val rdd = sc.parallelize(List(("spark",10),("hadoop",4),("hadoop",10),("spark",20)))

分析下数据, 要想求平均值, 必须算出总的价格,要对不同书进行分组,求每组书的数量

val r2 = rdd.mapValues(x => (x,1))

因为mapValues是对值的操作,不操作key, 打印结果如下

(spark,(10,1))
(hadoop,(4,1))
(hadoop,(10,1))
(spark,(20,1))

接着需要按key进行reduce,让key合并

val r3 = r2.reduceByKey((x,y) => (x._1+y._1, x._2+y._2))

变量说明:
当将spark进行reduce后
这里的(x,y) 表示的是(10,1)(20,1)
x._1 表示10, x._2表示1
y._1表示20, y._2表示1
这样通过计算得到的就是如下结果

(spark,(30,2))
(hadoop,(14,2))

接着要对value进行操作,用mapValues()就行啦

val r4 = r3.mapValues(x => x._1 / x._2)

打印结果如下

(spark,15)
(hadoop,7)

reduceByKey相关推荐

  1. 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作

    下面来看看groupByKey和reduceByKey的区别: val conf = new SparkConf().setAppName("GroupAndReduce").se ...

  2. spark rdd reduceByKey示例

    reduceByKey ➢  函数签名 def reduceByKey(func: (V, V) => V): RDD[(K, V)] def reduceByKey(func: (V, V) ...

  3. groupByKey、reduceByKey区别(转)

    转载自: https://www.cnblogs.com/bonelee/p/7111395.html spark-shell 下: 代码如下: val words = Array("one ...

  4. reduceByKey和groupByKey区别与用法

    2019独角兽企业重金招聘Python工程师标准>>> 在Spar看中,我们知道一切的操作都是基于RDD的.在使用中,RDD有一种非常特殊也是非常实用的format--pair RD ...

  5. java reducebykey_Spark入门(五)--Spark的reduce和reduceByKey

    reduce和reduceByKey的区别 reduce和reduceByKey是spark中使用地非常频繁的,在字数统计中,可以看到reduceByKey的经典使用.那么reduce和reduceB ...

  6. spark RDD,reduceByKey vs groupByKey

    Spark中有两个类似的api,分别是reduceByKey和groupByKey.这两个的功能类似,但底层实现却有些不同,那么为什么要这样设计呢?我们来从源码的角度分析一下. 先看两者的调用顺序(都 ...

  7. SparkStreaming找不到reduceByKey的解决方法

    本文转自http://www.68idc.cn/help/jiabenmake/qita/20150115172034.html,所有权力归原作者所有. 本文中的问题可能是个很低级的问题,但是对我对S ...

  8. Spark Scala当中reduceByKey的用法

    [学习笔记] reduceByKey(function) reduceByKey就是对元素为KV对的RDD中Key相同的元素的Value进行function的reduce操作(如前所述),因此,Key ...

  9. 【Spark】reduceByKey和GroupByKey

    尽可能的使用reduceByKey而不使用GroupByKey 1.区别

  10. 解决数据倾斜一:RDD执行reduceByKey或则Spark SQL中使用group by语句导致的数据倾斜

    一:概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的 ...

最新文章

  1. 用9*9的卷积核分类9*9的图片
  2. LeetCode 872叶子相似的树-简单
  3. [html] 编写html时,你有没有用过Emmet插件呢?说说它的优点及规则有哪些?
  4. html复选框全选按钮代码,全选复选框JavaScript编写小结(附代码)
  5. windows计划任务+批处理文件实现oracle数据库的定时备份与恢复
  6. SpringCloud工作笔记044---SpringCloud分布式服务器配置要求_记录一下
  7. win2003域迁移实战记录
  8. oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366
  9. python办公自动化——提取pdf中的文字和表格
  10. dBm和dB(纯计数单位)
  11. 分享丨人脸数据集的史上最大规模调查
  12. 人生如逆旅,我亦是行人。
  13. 用了python之后笔记本卡了_干货!如何用Python在笔记本电脑上分析100GB数据(上)...
  14. opc服务器连接plc断开显示,如何判断OPC与PLC通讯失败
  15. unity怎么显示骨骼_Unity骨骼动画的总结
  16. ColorPicker一款安卓取色器,模仿ps取色板
  17. SDL系列教程(一):SDL简介
  18. JSP实现养老院管理系统
  19. console连接h3c s5500_H3C交换机console口进入怎么设置密码
  20. 2022年最新宁夏机动车签字授权人模拟考试及答案

热门文章

  1. 基于Android的微信主界面
  2. 计算机类国企门槛,大学生想进“国家电网”,3个条件缺一不可,少一个将与国企无缘...
  3. ubuntu16.04安装GNU Radio
  4. shell脚本编程笔记(十)—— 正则表达式
  5. Arduino机器人快速上手经验分享(L298N马达驱动,摇杆模块)
  6. 计算机专业省赛一等奖有什么好处,厉害了!计算机应用专业的他获省级书法比赛一等奖...
  7. ChromeFK插件推荐系列二十三:在线文字转语音/语音朗读插件推荐
  8. 计算机编程课程顺序_430道免费的在线编程和计算机科学课程,您可以在11月开始...
  9. RAID磁盘冗余阵列
  10. Tungsten Fabric知识库丨vRouter内部运行探秘