题目:
给定一组键值对(“spark”, 2)(“hadoop”, 6)(“hadoop”, 4)(“spark”, 6),键值对的key表示图书名称,value表示某天的图书销量,请计算每个键对应的平均值,也就是计算每种图书的每天平均销量

下面利用scala实现

环境是在jupyter notebook中的运行,使用scala语法:

命令1:

val rdd = sc.parallelize(Array(("spark", 2), ("hadoop", 6), ("hadoop", 4), ("spark", 6)))  // 创建RDD

输出1:

rdd: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[0] at parallelize at <console>:25

命令2:

rdd.foreach(elem=>println(elem))

输出2:

(spark,2)
(hadoop,6)
(hadoop,4)
(spark,6)

命令3:

rdd.mapValues(x=>(x,1)).foreach(elem=>println(elem))  // mapValues不是行动操作

输出3:

(spark,(2,1))
(hadoop,(6,1))
(spark,(6,1))
(hadoop,(4,1))

命令4:

rdd.mapValues(x=>(x,1)).reduceByKey((x, y)=>(x._1+y._1, x._2+y._2)).foreach(elem=>println(elem))

输出4:

(hadoop,(10,2))
(spark,(8,2))

命令5:

rdd.mapValues(x=>(x,1)).reduceByKey((x, y)=>(x._1+y._1, x._2+y._2)).mapValues(x=>(x._1/x._2)).foreach(elem=>println(elem))

输出5:

(spark,4)
(hadoop,5)

命令6:

rdd.mapValues(x=>(x,1)).reduceByKey((x, y)=>(x._1+y._1, x._2+y._2)).mapValues(x=>(x._1/x._2)).collect()

输出6:

res10: Array[(String, Int)] = Array((hadoop,5), (spark,4))

07-案例:销售图书相关推荐

  1. 案例:图书管理——补充知识(数组相关API)||补充知识(数组响应式变化)

    案例:图书管理 Vue数组操作 1.变异方法:会影响数组的原始数据的变化. 2.替换数组:不会影响原始的数组数据,而是形成一个新的数组. <!DOCTYPE html> <html ...

  2. c语言销售总额信息统计,C语言精简案例--销售统计直方图

    原标题:C语言精简案例--销售统计直方图 01 C语言精简案例-销售统计直方图 //今晚内容:C语言新案例-数据表 //讲课老师:范志军 #include #include void ShowSale ...

  3. 软件工程案例学习-图书管理系统

    软件工程案例学习-图书管理系统 文档编号:LMS_1                                                                           ...

  4. 案例:图书管理(包括图书列表展示,添加、修改、删除图书功能)

    案例:图书管理 功能如下: (1)图书列表 实现静态列表效果 基于数据实现模板效果 处理每行的操作按钮 (2)添加图书 实现表单的静态效果 添加图书表单域数据绑定 添加按钮事件绑定 实现添加业务逻辑 ...

  5. JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能

    继续来做案例练习,本篇学习如何删除图书,也就是在list.jsp页面的图书列表中,点击删除按钮,这条图书记录信息就从列表消失,然后相当于刷新当前页面,列表就少了一条图书记录. 1.需求场景 例如把Py ...

  6. JavaWeb学习-案例练习-图书管理前台-10- 图书详情页的实现

    前面一篇实现了前端图书列表的分页操作,可以点击上一页和下一页,这个我们实现每个页面显示4本书,实际开发中,一般设置20条记录或者40条记录,这个实现原理是一样的.这篇来学习,在前端页面点击这本书的名称 ...

  7. 《精通移动app测试实战:技术、工具和案例》图书目录

    图书相关链接: 京东网:http://item.jd.com/11891239.html 当当网:http://product.dangdang.com/23924601.html 亚马逊:https ...

  8. 07 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上)

    上一节,我用一个 Nginx+PHP 的案例,给你讲了服务器 CPU 使用率高的分析和应对方法.这里你一定要记得,当碰到无法解释的 CPU 使用率问题时,先要检查一下是不是短时应用在捣鬼. 短时应用的 ...

  9. JavaWeb学习-案例练习-图书管理前台-9-分页功能实现

    前面一篇完成了多条件的查询,这篇开始学习分页,很多网页是默认显示20条数据,想看更多数据,就通过点击下一页的方式实现.这篇就来模拟这个分页实现过程. 1.项目环境准备 之前我们实现的都是图书管理后台功 ...

最新文章

  1. 自动驾驶的分级和行业现状
  2. istio入门(05)istio的架构概念2
  3. css3动画,监控动画执行完毕
  4. 原生js实现京东商城楼梯效果
  5. 高特权级代码段转向低特权级代码段(利用 ret(retf) 指令实现 jmp from ring0 to ring3)
  6. Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)修复方法及centos6和centos7的安装包
  7. verilog异步复位jk触发器_同步复位和异步复位常见问题总结
  8. Linux驱动开发|WiFi驱动
  9. 计算机网络实验水晶头,计算机网络 实验1 双绞线水晶头制作.docx
  10. Jmeter--【作为测试你必须要知道的】基础名词与环境搭建
  11. 地理信息三维可视化技术在城市规划中的应用
  12. 报表工具的 SQL 植入sql注入风险及规避方法
  13. ZKT门禁机标准联接线(按键开关不经过卡机)
  14. 媒体邀约得3个步骤和5个注意事项
  15. Self -Supervised Learning
  16. js代码中引入js文件
  17. 实时操作系统在生活中应用举例
  18. 登录提示:You are required to change your password immediately (password aged)
  19. hutool 解读(三)—— IO流
  20. Python图像处理丨图像的灰度线性变换

热门文章

  1. 开篇鸿蒙谁为情种意思,【谁为情种】开辟鸿蒙 谁为情种
  2. 祝融号脚印来了!在火星表面工作54个火星日拍下火星岩石和沙丘照片
  3. Python 标准库 functools 模块详解
  4. 看《欢乐颂》五大美女独自在家_用什么智能用具...
  5. linux系统怎么学习
  6. Unity使用UnityWebRequest请求服务器json数据,webgl端服务器请求
  7. 这几个关于 AI 的公众号你关注了吗?
  8. pfSense高可用性集群设置指南
  9. webbench的简单使用
  10. java职工工资管理系统(GUI+无数据库)