zoukankan      html  css  js  c++  java
  • spark分组统计及二次排序案例一枚

    组织数据形式:
    aa 11
    bb 11
    cc 34
    aa 22
    bb 67
    cc 29
    aa 36
    bb 33
    cc 30
    aa 42
    bb 44
    cc 49

    需求:
    1、对上述数据按key值进行分组
    2、对分组后的值进行排序
    3、截取分组后值得top 3位以key-value形式返回结果

    答案如下:
    val groupTopNRdd = sc.textFile("hdfs://db02:8020/user/hadoop/groupsorttop/groupsorttop.data")

    groupTopNRdd.map(_.split(" ")).map(x => (x(0),x(1))).groupByKey().map(
    x => {
    val xx = x._1
    val yy = x._2
    (xx,yy.toList.sorted.reverse.take(3))
    }
    ).collect

    整合一条语句后结果如下:

    sc.textFile("hdfs://db02:8020/user/hadoop/groupsorttop/groupsorttop.data").map(_.split(" ")).map(x => (x(0),x(1))).groupByKey().map(
    x => {
    val xx = x._1
    val yy = x._2
    (xx,yy.toList.sorted.reverse.take(3))
    }
    ).collect

    可以将结果直接保存在hdfs文件系统上。

  • 相关阅读:
    20210123
    20210122
    20210121
    20210120
    2020119
    20210118
    20210117
    20210116
    例2-8
    例2-6
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/6898442.html
Copyright © 2011-2022 走看看