spark分組統計及二次排序案例一枚

2021-09-07 11:32:43 字數 696 閱讀 7590

組織資料形式:

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 =>

).collect

整合一條語句後結果如下:

sc.textfile("hdfs://db02:8020/user/hadoop/groupsorttop/groupsorttop.data").map(_.split(" ")).map(x => (x(0),x(1))).groupbykey().map(

x =>

).collect

可以將結果直接儲存在hdfs檔案系統上。

Spark的二次排序

1 資料樣本 1 52 4 3 61 3 2 11 14 2 45 4 11 3 23 5 12 6 13 2 排序規則 先按照第乙個字元排序,如果第乙個相同,再按照第二個字元排序 3 排序後的結果 1 31 5 1 14 2 12 4 2 45 3 63 23 4 11 5 12 6 13 4 s...

Spark中的二次排序

首先要先定義乙個自定義的型別,實現scala提供的ordered介面並實現其方法,方法就是排序的邏輯。這裡我對兩列數字進行排序,如下 package cn.spark.study.core class secondarysortkey val first int,val second int ext...

SQLServer 行轉列,統計,二次分組

create table test bizdate datetime,日期 classes varchar 50 班次 白班 或 夜班 qty int 產量 insert into test select 2011 04 01 白班 154 union select 2011 04 01 白班 40...