最近遇到的乙個要求使用mr處理的業務,原始資料一共有7個字段,原始資料中的兩個字段可以根據客戶提供的方法得出乙個指標。
要求:1、新的資料是在原始的資料後面調加上這個指標
2、保證資料沒有重複的
3、。。。
由於保密,資料就不貼出來了。
拿到這個一共有二個思路:
1、 在map函式中解析出這兩個字段,然後根據方法得出指標,在最後寫出去的時候context.write()時將value也就是原始資料的一行加上得出的指標一起當做key寫出到reduce中,這裡是要是要走reduce的,不然會生成多個檔案,而且是有重複的。這時經過shuffle後,到達reduce函式中,此時經過分組,相同的key只剩下乙個,而value為空,此時達到去重的目的,直接context.writer()將key輸出,即可得到結果。
2、這個思路比1要效能方面低一些,就是在map函式時將原始欄位和最後得出的指標分別作為key和value寫出,到了reduce函式中,只獲取value的迭代器中的第乙個值,然後和key最為最後的key寫出去,也能得到去重後的資料。這是因為這樣做的話,資料中會存在相同的key,這樣在shuffle過程中相同key的value會組合成乙個迭代器,然後傳輸到reduce端,比1來說造成了一定的網路io的開銷,另外在reduce函式中還要進行迭代,取出第乙個值,然後再寫出去,所以效能方面要低,而且有些麻煩。
SpringMVC乙個類處理多個業務以及注意事項
連線 hellospringmvc springmvc在進行檢視跳轉的時候是可以 到html頁面的,但是需要在springmvc.xml檔案中設定 但是html頁面不支援el表示式,無法獲取到後端攜帶的資料,如果想要獲取資料,就使用模板引擎 html。在以上的寫法中,乙個controller只能做一...
執行mr時候報的乙個錯
hadoop版本 hadoop 2.2.0 cdh5.0.0 beta 1 今天在執行sqoop往hbase裡導數的時候,dn節點報了下面的錯 看異常是相應的jar沒找到 為了執行mr,在yarn site.xml中有這樣乙個的配置 hadoop conf dir,hadoop common hom...
flask 處理post方法遇到的乙個問題
最近通過flask編寫乙個web程式,在通過requests模組對restful介面進行測試時,遇到了乙個問題,在這裡記錄下。通過requests進行post提交資料時,後台無法獲取到對應的引數。tx requests.post x data 1.1 後台報400錯誤。400錯誤表示 由於語法格式有...