原始数据,
数据按顺序为timestamp,province,city,userid,adid

1562085629599    Hebei   Shijiazhuang    564 1
1562085629621   Hunan   Changsha    14  6
1562085629636   Hebei   Zhangjiakou 265 9
1562085629653   Hunan   Changsha    985 4
1562085629677   Jiangsu Nanjing 560 6
1562085629683   Hubei   Jingzhou    274 2
1562085629699   Jiangsu Suzhou  29  5
1562085629704   Jiangsu Nanjing 759 3
1562085629706   Hunan   Xiangtan    88  8
1562085629713   Hebei   Zhangjiakou 102 9
1562085629715   Hebei   Zhangjiakou 302 2

需求
统计每一个省份点击TOP3的广告ID
参考答案

(Hunan,List((5,2273), (1,2202), (2,2193)))
(Hebei,List((7,2250), (8,2240), (3,2234)))

解析

  • 需求每个省点击top3,需要依据省份,以及广告Id分组
  • 需要对每个省每个广告点击量求和
  • 本题需要用到的数据有province,adid 其余都用不上
  • top3 则需要对广告点击数排序.则需要把广告id和每个广告的点击数构造到同一个数组中, id和点击数绑定到一块,(元组形式)
def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("count").setMaster("local")val sc = new SparkContext(conf)val file: RDD[String] = sc.textFile("D:\\mypc\\Phase03-02-Spark\\day04\\作业\\数据")val arr = file.map(line => {val lineArr = line.split("\t")val province = lineArr(1)val ad_id = lineArr(4)((province, ad_id), 1)})// per(广告+id) 点击量val sumed: RDD[((String, String), Int)] = arr.reduceByKey((x, y) => (x + y))//每个省top3广告点击量  依据省分组,重组上述数据val resumed: RDD[(String, (String, Int))] = sumed.map(line => {val province = line._1._1val adid = line._1._2val proAdsum = line._2(province, (adid, proAdsum))})//依据省聚合val resumby_pro: RDD[(String, Iterable[(String, Int)])] = resumed.groupByKey()//排序val sorted = resumby_pro.mapValues(_.toList.sortWith((x, y) => (x._2 > y._2)).take(3))val map: collection.Map[String, List[(String, Int)]] = sorted.collectAsMap()println(map)}

spark练习之统计广告Top3相关推荐

  1. 【大数据开发】SparkCore——统计广告topN、基站停留时间topN、ip地址统计练习

    文章目录 材料准备 一.统计广告TopN 1.1统计每⼀个省份点击TOP3的⼴告ID 1.2统计每一个省份每一个小时的TOP3广告ID 二.基站停留时间TopN 三.ip地址统计 材料准备 新建一个o ...

  2. 大数据IMF传奇行动绝密课程第104-114课:Spark Streaming电商广告点击综合案例

    Spark Streaming电商广告点击综合案例 需求分析和技术架构 广告点击系统实时分析 广告来自于广告或者移动App等,广告需要设定在具体的广告位,当用户点击广告的时候,一般都会通过ajax或S ...

  3. 用spark实现单词统计

    1.在本地运行 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}/*** 用spark ...

  4. CC00047.bdpositions——|Hadoop实时数仓.V27|——|项目.v27|需求三:数据处理增量统计广告.V1|——|需求分析|

    一.需求3:每隔5秒统计最近1小时内广告的点击量---增量 二.实现步骤 ### --- 实现步骤~~~ 获取数据源(input)--- flume ~~~ 转化 ~~~ 数据源的格式:area:ui ...

  5. 分享Spark MLlib训练的广告点击率预测模型

    2015年,全球互联网广告营收接近600亿美元,比2014年增长了近20%.多家互联网巨头都依赖于广告营收,如谷歌,百度,Facebook,互联网新贵们也都开始试水广告业,如Snapchat, Pin ...

  6. 大数据Spark入门案例5–统计广告点击数量排行Top3(scala版本)

    大数据Spark入门案例5–统计每广告点击数量排行Top3(scala版本) 1 数据准备 链接:https://pan.baidu.com/s/1afzmL-hNsAJl1_gx_dH2ag 提取码 ...

  7. Spark 算子使用案例 -- 统计广告点击量 Top3

    1.数据准备 数据格式:时间戳,省份,城市,用户,广告,中间字段使用空格分隔. 数据的粒度是用户,每一条数据是用户在何时何地点击了广告. 1516609143867 6 7 64 16 1516609 ...

  8. SparkCore案例练习:统计广告ID

    数据格式: timestamp province city userid adid时间点 省份 城市 用户 广告 用户ID范围:0-99 省份,城市,ID相同:0-9 adid:0-19 统计每个省份 ...

  9. scala spark 埋点统计_spark—1:WordCount(Python与Scala对照)

    spark是一种基于rdd的弹性分布式数据集的计算框架软件. 官方提供scala接口,Python接口,以及java接口. 这里提供scala和Python的两种版本的对照代码,会持续更新下去. 欢迎 ...

最新文章

  1. android 解决华为系列手机调试时不能打印Logcat日志信息
  2. 用Java和Java 8创建内部DSL,采用Martin Fowler的方法
  3. 前端学习(1155):常量const03
  4. html之属性的定义
  5. 你知道group by的工作原理和优化思路吗?
  6. Blender 2.82 发布,三维动画制作软件
  7. python百分比堆积条形图_Pandas 堆积条形图中的元素顺序 - python
  8. bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏(枚举)
  9. 机顶盒 img打包工具_网络机顶盒刷机、固件升级图文详解 宏旺半导体包教包会...
  10. matlab freqz用法ba,【matlab】freqz函数的使用(一)
  11. 用 Python 实现微信推送消息
  12. echarts实现中国地图踩过的坑--------有些省的value可以拿到,有些省的value拿不到
  13. 四百左右的蓝牙耳机有哪些?四百左右好用的蓝牙耳机推荐
  14. php 生成纯黑白图片,使用CSS将彩色图片转换为黑白图片
  15. core 读取视图html,ASP.NET Core MVC 之视图(Views)
  16. JAVA常见面试题(下)
  17. Hyperledger Fabric网络节点架构
  18. Linux 操作系统的 ECS 挂载云硬盘
  19. Pandas详细总结(20000字 完结)
  20. MATLAB函数——premnmx

热门文章

  1. raptor五个数排序流程图_看了这篇文章,我发现排序算法好简单
  2. casio wrist怎么调时间_价格便宜量也足,小米有品TIMEROLLS COB时间轨迹石英腕表体验...
  3. 前端每日一算(我掐指一算,這题不难~入门啊入门)
  4. pe怎么删除linux文件夹,PE环境下,面对无法删除的文件夹怎么办?
  5. java枚举返回字符串_枚举工具类-通过给定值获取对应的枚举类
  6. python标准库time_python标准库介绍——12 time 模块详解
  7. dataman软件设置中文_S7200 SMART软件常见错误处理办法
  8. 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
  9. Centos7克隆虚拟机之后,不显示ip地址,原虚拟机配置文件里面也没有HWADDR
  10. android模拟器 opengl,android模拟器用到android.opengl.glsurfaceview报错怎么办