MongoDB MapReduce 實戰<3>

來源:互聯網
上載者:User
最後的處理結果儲存在“ttt_date_out”表中,繼續寫下一個MapReduce,預期結果是所有記錄的平均記錄產生時間 Map:
function Map() {var count_time = 0;var arv_time = 0;var times = this.value.times;if(times){if(times.length > 1){for(var i = 0;i < times.length;i++){if(i != times.length - 1){count_time += times[i] - times[i+1];}}}arv_time = count_time / (times.length - 1);emit('result', arv_time); }}
Reduce:
function Reduce(key, values) {var ret={msg:key};var count_times = 0;for(var i = 0;i < values.length;i++){count_times += values[i];}ret.arv_time = count_times / values.length;return ret;}
Finalize:(上一個MapReduce中沒有,在這裡主要作用為對結果再次進行處理)
function Finalize(key, reduced) {// 轉成秒 var second = parseFloat(reduced) /1000;    // 轉分鐘var minute = parseInt(second / 60);// 剩餘秒var s = second % 60;// 轉小時var hour = parseInt(minute / 60);// 剩餘分var m = minute % 60;// 轉天var day = parseInt(hour / 24);// 剩餘小時var h = hour % 24;    return day + " 天 " + h + " 小時 " + m + " 分鐘 " + s + " 秒 ";}
配置In & Out
最終結果
小結: 經過一天的努力,完成了預期的目標,明天繼續瞭解一下,最終操作實際的日誌表,看看效果。 MapRecude的編寫語言為Javascript,剛開始是用命令列,編寫以及閱讀太過麻煩,最後雖然使用MongoVUE,但是調試起來很困難,沒有debug。找了很多資料也沒有具體的好方法,悲劇。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.