Spark中实现TOP N (Scala版本)

来源:互联网 发布:苹果视频制作软件 编辑:程序博客网 时间:2024/06/17 11:00
package Basic


import org.apache.spark.{SparkConf, SparkContext}


/**
  * Created by tg on 10/25/16.
  */
object Top3 {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setAppName("Top3").setMaster("local")
    val sc=new SparkContext(conf)
    //从HDFS中读取数据
    val lines=sc.textFile("hdfs://tgmaster:9000/in/nums2")


    /**
      * 1、通过map算子形成映射
      * 2、通过sortByKey算子针对Key进行降序排列
      * 3、通过map算子获取排序之后的数字
      * 4、通过take算子获取排序之后的前3个数字
      * 5、通过foreach算子遍历输出
      */
    lines.map(m=>(m.toInt,m.toInt)).sortByKey(false)
      .map(m=>m._1).take(3).foreach(println _)
  }
}
0 0