统计出每一个省份每个广告被点击数量排行的Top3
val value = sparkContext.textFile("C:\\BaiduNetdiskDownload\\15.Spark\\2.资料\\data\\agent.log") //分割转换map ( ( 省份,广告 ), 1 ) val value1 = value.map(line => { var datas = line.split(" "); (((datas(1), datas(4)), 1)) }) // 数据聚合 ( ( 省份,广告 ), sum ) val value2: RDD[((String, String), Int)] = value1.reduceByKey(_ + _) // 聚合得数据转换 ( 省份, ( 广告, sum ) ) val value3 = value2.map({ case ((str1, str2), str3) => { (str1, (str2, str3)) } }) // 分组 val value4: RDD[(String, Iterable[(String, Int)])] = value3.groupByKey() //取前三名 var resultRDD = value4.mapValues(iter => { iter.toList.sortBy(_._2)(Ordering.Int.reverse).take(3) }) // 7. 采集数据打印在控制台 resultRDD.collect().foreach(println)