广告统计top3(一)
数据字段: 时间戳 省份 城市 userId adId
需求: 求每一个省份的点击广告的top3
package com.jxlg.RDDimport org.apache.spark.{SparkConf, SparkContext}/*** 数据字段: 时间戳 省份 城市 userId adId* 需求: 求每一个省份的点击广告的top3*/
object AdventTop3_1 {def main(args: Array[String]): Unit = {val conf = new SparkConf()conf.setAppName("top3统计")conf.setMaster("local[3]")val sc = new SparkContext(conf)val logs = sc.textFile("hdfs://192.168.157.132:9000/user/hdfs/add.txt")val logArr = logs.map(_.split("\t"))//提取需求分析的数据val provinceAndAdId=logArr.map(x=> (x(1)+"_"+x(4),1))//将每一个省份的对应的广告点击量进行统计val aggrProvinceAndId = provinceAndAdId.reduceByKey(_+_)//为了方便接下来进行省份的分组并组内排序,需要数据进行整合val provinceAndAdIdTup = aggrProvinceAndId.map(tup => {val splited=tup._1.split("_")val province = splited(0)val adId =splited(1)(province,adId,tup._2)})//按照省份进行分组val groupedPro = provinceAndAdIdTup.groupBy(_._1)//组内排序val res = groupedPro.mapValues(x => x.toList.sortWith(_._3>_._3).take(3))println(res.collect.toBuffer)sc.stop()}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
