1. 程式人生 > >【圖文解析 】TopN 演算法實現-自定義 GroupComparator

【圖文解析 】TopN 演算法實現-自定義 GroupComparator

TopN 演算法實現-自定義 GroupComparator 


1、需求 
在統計學生成績的小專案中,現在有一個需求: 求出每個班參考學生成績最高的學生的資訊,班級,姓名和平均分 
2、分析 

  • 利用“班級和平均分”作為 key,可以將 map 階段讀取到的所有學生成績資料按照班級 和成績排倒序,傳送到 reduce
  • 在 reduce 端利用 GroupingComparator 將班級相同的 kv 聚合成組,然後取第一個即是最 大值 

3、實現 
第一步:先把分組和排序欄位都綜合到一個自定義物件裡 

第二步:編寫排序之後的 ClazzScore 資料傳入 ReduceTask 的分組規則 

第三步:編寫 MapReduce 程式