TopNGroup

4 篇文章 0 订阅
3 篇文章 0 订阅
跟随王家林老师的零基础讲解,注重动手实战,成为spark高手,笑傲大数据之林!王家林老师是大数据技术集大成者,中国Spark第一人:DT大数据梦工厂新浪微博:www.weibo.com/ilovepains/微信公众号:DT_Spark博客:http://.blog.sina.com.cn/ilovepainsTEL:18610086859Email:18610086859@vip.126.comimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextobject TopNGroup { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("TopNGroup").setMaster("local") val sc = new SparkContext(conf) val lines = sc.textFile("F:\\tempFile\\TopNGroup.txt") //val pairs=lines.map(line=>(line.split(" ")(1)),line.split(" ")(2)) val pairs = lines.map(line => { val splited = line.split(" ") //返回的是数组, (splited(0), splited(1).toInt) }) //val grouped=pairs.groupBy(x=>x._1) val grouped = pairs.groupByKey() //到这一步,我们可以打印出来 分组后的key的值 这里的值 是 spark 和 hadoop //val xx=grouped.map(x=>x._1) //xx.foreach(println) //grouped.foreach(println) //肯定是要先 key排序 val grouped1 = grouped.map(x => ((x._1), (x._1, x._2))) val grouped2 = grouped1.sortByKey() val grouped3 = grouped2.map(x => (x._2)) val grouped4 = grouped3.map(x => { val str = x._1 val it = x._2.iterator //可迭代,和迭代器是不一样的哦 val arr = new Array[Int](5) //我们计算的是top5 所以我们留的是申请的是5个数据的数组 while (it.hasNext) { var flag1=true //var flag2=true val temp=it.next for (i <- 0="" to="" 4="" if="" flag1="" if="" arr="" i="" 0="" arr="" i="" temp="" flag1="false" else="" if="" temp="">arr(i)){ for(j<- i="" 1="" to="" 4="" reverse="" arr="" j="" arr="" j-1="" arr="" i="" temp="" flag1="false" str="" arr="" grouped4="" foreach="" x="">{println(x._1) x._2.foreach(println) }) sc.stop }}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值