【Spark 应用】实现分组取topN

简介: 【Spark 应用】实现分组取topN

一、文本格式


class1 90
class2 56
class1 87
class1 76
class2 88
class1 95
class1 74
class2 87
class2 67
class2 77


二、代码如下


package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
 * scala版本的groupTopN
 */
object GroupTopN {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("groupByTopN").setMaster("local[1]")
    //获取context
    val sc = new SparkContext(conf)
    //加载到内存RDD
    val scores = sc.textFile("score.txt", 1)
    //转换成为kv格式,方便分组操作
    val scoresMap = scores.map(x => {
      val al = x.split(" ")
      (al(0), al(1).toInt)
    })
    //分组
     val paris=scoresMap.groupByKey()
     //sort进行排序
     val result=paris.map(x=>(x._1,x._2.toList.sorted(Ordering.Int.reverse)))
        //遍历取值
     result.foreach(x =>{
       println("01 "+x._1)
       //前包后不包
       println("02 "+x._2.slice(x._2.length-4, x._2.length))
       })
//第二种方式:不建议使用
//     println(res)
//     def res():Any=result.foreach(x=>{
//       (x._1,x._2.toList.sorted)
       var lists2=List(2)//必须使用变量
       for(score <-  x._2){
       lists2=  lists2.:+(score.toInt)
             println(lists2)
       }
       println("集合是:"+lists2)
       l.sorted(Ordering.Int.reverse)
*/    
//     })
  }
}
目录
相关文章
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
1748 1
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
1526 0
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
384 0
|
SQL 分布式计算 Java
Spark入门指南:从基础概念到实践应用全解析
在这个数据驱动的时代,信息的处理和分析变得越来越重要。而在众多的大数据处理框架中, Apache Spark 以其独特的优势脱颖而出。
628 0
|
分布式计算 安全 Java
SPARK 应用如何快速应对 LOG4J 的系列安全漏洞
SPARK 应用如何快速应对 LOG4J 的系列安全漏洞
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
10月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1083 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
12月前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
558 15
|
12月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
291 0
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
464 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享