码迷,mamicode.com
首页 > 其他好文 > 详细

spark分组取 topN

时间:2017-04-28 16:12:58      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:spark分组取 topn

SPARK用scala实现分组取topN

原文件:

class1 33

class2 56

class1 87

class2 77

class1 76

class2 88

class1 95

class1 74

class2 85

class2 67

class2 77

class1 99

class1 59

class2 60

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

import org.apache.commons.collections.map.Flat3Map


object GroupTopN {

  

  def main(args: Array[String]): Unit = {

    

          val conf = new SparkConf()

                  .setAppName("TopN")

                  .setMaster("local")

          val sc = new SparkContext(conf)

          val lines = sc.textFile("C://Users//Administrator//Desktop//spark//groupTopN.txt", 1)

          val pairs = lines.map { line => line.split(" ")}

          val xx = pairs.map { pair => (pair(0),pair(1).toInt) }

          val sort = xx.groupByKey()

          val result = sort.map(s=>(s._1,s._2.toList.sorted(Ordering.Int).take(4)))

          result.foreach(r => println(r._1+""+r._2))       

  }

  

}


spark分组取 topN

标签:spark分组取 topn

原文地址:http://beyond520.blog.51cto.com/10540356/1920370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!