hadoop mr 輔助排序

2021-09-02 20:15:34 字數 1180 閱讀 7878

輔助排序

需求:訂單資料

求出每個訂單中最貴的商品?

訂單id正序,成交金額倒序。

結果檔案三個,每個結果檔案只要一條資料

public class orderbean implements writablecomparable

public orderbean(int order_id,double price)

getter;

setter;

//序列化

@override

public void write(dataoutput out) throws ioexception

//反序列化

@override

public void readfields(datainput in) throws ioexception

@override

public string tostring()

//排序id,在比較**

@override

public int compareto(orderbean o) else if(order_id<0.order_id) else }}

string line = value.tostring();

string fields = line.split("\t");

integer order_id = integer.parseint(fields[0]);

double price = double.parsedouble(fields[2]);

context.write(new orderbean(order_id, price),nullwritable.get());} }

public class orderpartitioner extends partitioner

}//輔助排序

public class ordergroupingcomparator extends writablecomparator

public int compare(writablecomparable a,writablecomparable b)else if(abean.getorder_id()

}public class orderreducer extends reducer

}public class orderdriver

}

hadoop mr 全域性排序

全域性排序 需求 根據使用者每月使用的流量按照使用的流量多少排序 介面 writablecomparable 排序操作在hadoop中屬於預設的行為。預設按照字典順序排序。排序的分類 1 部分排序 2 全排序 3 輔助排序 4 二次排序 封裝類,直接完成排序 public class flowbea...

使用演算法實踐(輔助) 計數排序

文章 計數排序 今天學習了計數排序,貌似計數排序的複雜度為o n 很強大。他的基本思路為 1.我們希望能線性的時間複雜度排序,如果乙個乙個比較,顯然是不實際的,書上也在決策樹模型中論證了,比較排序的情況為nlogn的複雜度。2.既然不能乙個乙個比較,我們想到乙個辦法,就是如果我在排序的時候就知道他的...

Hadoop MR程式設計中main 函式引數注入

下面介紹mapreduce的主要的六個類,只有了解了這六個類的作用,才能在編寫程式中知道哪個類是要自己實現,哪些類可以呼叫預設的類,才能真正的做到游刃有餘,關於需要自己編寫的類 使用者制定類 可以參考 inputformat類。該類的作用是將輸入的檔案和資料分割成許多小的split檔案,並將spli...