`

Spark 实现TopN的问题(groupBy)

 
阅读更多
t2.txt
ab 11 
ab 23
ab 13 
ab 44
bb 32
bb 88


// 读取文件
var lines = sc.textFile("/test/t2.txt")
// 对键值进行分组
var ss = lines.map(_.split(" ")).map(f=>(f(0),f(1))).groupBy(f=>f._1)
// 转换成(xx,List(1,23)) 格式 需要转换成整型
var st = ss.map(f=>{var x = f._1;var y=f._2;(x,y.map(_._2.toInt))})
// 得到每个键值前三的数组 格式 (aa,List(122,90,80)) Iterator没有sorted方法所以需要toArray
var result = st.map(f=>{var y = f._2;(f._1,y.toArray.sorted.reverse.take(3))})



groupBy的操作必须对元组进行操作
倒序需要用sorted.reverse结合使用



分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spark的TopN示例

    在Spark中,TopN算法的实现方式多种多样,主要分为针对唯一键的TopN、非唯一键的TopN以及在每个Group内部的TopN。下面将详细解释这些概念和实现方法。 一、唯一键TopN 唯一键TopN算法适用于处理键值对数据,目标是...

    Spark性能测试报告-Spark SQL在不同存储格式下的性能对比

    - **返回较多列值的Topn排序**:涉及多个字段的Top N排序任务。 - **低维值列ydb_sex的单列Group By Count(*)**:单一字段的分组计数。 - **低维值列ydb_province的单列Group By Max(ydb_age)**:单一字段的分组最大...

    Spark在不同存储格式下的性能对比

    - **1~2个列的Groupby**:对于涉及少量列的Groupby操作,YDB和PARQUET均能提供较高的性能。 - **10~12个列的统计与Groupby**:随着列数的增加,YDB仍然保持良好的性能水平,而TEXT格式则显得力不从心。 **高纬值列...

    Big Data Frameworks Scala and Spark Tutorial

    val counts = words.groupBy(identity).map(words => words._1 -> words._2.size) val top10 = counts.toList.sortBy(-_._2).take(10) println(top10.mkString("\n")) ``` 这段代码首先从一个文本文件中读取所有行...

    SparkApp自动化分析和故障诊断

    华佗系统采用Druid和ES作为数据存储,Druid擅长时序数据的OLAP分析,尤其适用于系统监控场景,能进行TopN、GroupBy等复杂查询。ES则用于存储事件数据,支持快速检索和异常报警。这样的设计使得监控和故障诊断更加...

    延云ydbOnSpark的性能测试报告

    通过对多种查询类型和不同数据规模的测试,可以看出YDB on Spark在大多数情况下都表现出显著的性能优势,尤其是在存储空间利用率、小范围扫描、TopN排序、分类汇总统计以及排重统计等方面。这表明YDB on Spark不仅...

    TRANSFORMATIONS AND ACTIONS .pdf

    另一类是有状态的,会改变RDD中数据的结构,如groupBy()、reduceByKey()等。transformations常见的操作有: - map(func):对RDD中的每个元素应用func函数,并返回一个新的RDD。 - filter(func):返回一个新的RDD,...

    SQL常见大厂面试题 - 7大类型

    6. **带条件的聚合统计**:这类问题涉及在聚合操作中应用条件,例如`HAVING`子句用于在`GROUP BY`之后过滤结果,这与`WHERE`子句不同,`WHERE`是在聚合之前进行过滤。 7. **SQL执行顺序**:理解SQL语句的执行顺序至...

    Java_Apache Druid一个高性能的实时分析数据库.zip

    Druid支持多种查询类型,如SQL、TopN、GroupBy、Timeseries等。 5. **实时分析**: Druid的实时分析能力强大,可以实现毫秒级的查询响应。这对于需要实时监控和快速响应的业务场景至关重要。 6. **数据压缩与存储...

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    TopN 下推 Limit 下推 4.提供了索引相关支持 谓词转化聚簇索引范围 谓词转化次级索引 Index Only 查询优化 运行时索引退化扫表优化 5.提供了基于代价优化 统计信息支持 索引选择 广播表代价估算 6.多种 ...

    druid的使用

    在业务应用中,Druid支持多种查询类型,如时间序列查询(TimeSeries)、分组查询(GroupBy)、TopN查询、以及Select查询等。Druid特别适合处理星型模型的数据查询,即一个事实表通过维度表进行关联。尽管如此,Druid...

Global site tag (gtag.js) - Google Analytics