Spark 實現TopN的問題(groupBy)

2021-09-02 20:29:10 字數 636 閱讀 9213

[b]t2.txt[/b]

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

// 得到每個鍵值前三的陣列 格式 (aa,list(122,90,80)) iterator沒有sorted方法所以需要toarray

var result = st.map(f=>)

[color=red][b]groupby的操作必須對元組進行操作[/b][/color]

[size=medium][color=blue][b]倒序需要用sorted.reverse結合使用[/b][/color][/size]

Spark實現分組TopN

在許多資料中,都存在類別的資料,在一些功能中需要根據類別分別獲取前幾或後幾的資料,用於資料視覺化或異常資料預警。在這種情況下,實現分組topn就顯得非常重要了,因此,使用了spark聚合函式和排序演算法實現了分布式topn計算功能。計算分組topn 9 created by administrato...

mysql中TopN的實現

要實現topn,必定需要將資料進行分組,再將每個分組裡邊的資料進行排序。其實這個用order by a,b 就能夠對a欄位進行分組,再對b進行排序。排完序之後只需要將前n個就可以了。就像這樣,我們只需要把他們進行排序即可,我們可以建立兩個字段,第乙個字段記錄上乙個subject,第二個字段用來標記當...

分組Top N問題 三 sql及Hive實現

同上篇hadoop mapreduce 實現分組top n介紹一樣,這次學習hive實現分組top n。在資料處理中,經常會碰到這樣乙個場景,對錶資料按照某一字段分組,然後找出各自組內最大的幾條記錄情形。針對這種分組top n問題,我們利用hive mapreduce等多種工具實現一下。對類如下us...