开发者社区> 问答> 正文

如何使用Spark实现TopN的获取?

如何使用Spark实现TopN的获取?

展开
收起
芯在这 2021-12-06 23:19:31 286 0
1 条回答
写回答
取消 提交回答
  • 方法1:

    (1)按照key对数据进行聚合(groupByKey)

    (2)将value转换为数组,利用scala的sortBy或者sortWith进行排序(mapValues)

    注意:当数据量太大时,会导致OOM

    方法2:

    (1)取出所有的key

    (2)对key进行迭代,每次取出一个key利用spark的排序算子进行排序

    方法3:

    (1)自定义分区器,按照key进行分区,使不同的key进到不同的分区

    (2)对每个分区运用spark的排序算子进行排序

    2021-12-06 23:19:59
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载