[Spark应用]-- 实现分组取topN

本文介绍如何在Spark中使用Scala实现数据分组后,每个分组内取出TopN条记录的方法,涵盖文本格式说明及核心代码展示。
摘要由CSDN通过智能技术生成

一、文本格式

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(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事随风ing

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值