真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦

這篇文章主要講解了“Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦”吧!

成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(創(chuàng)新互聯(lián)建站).為客戶提供專業(yè)的IDC機(jī)房托管,四川各地服務(wù)器托管,IDC機(jī)房托管、多線服務(wù)器托管.托管咨詢專線:13518219792

    在hadoop2.7.1上寫了一段MapReduce程序,做一個(gè)word cloud統(tǒng)計(jì),程序執(zhí)行結(jié)果中有數(shù)據(jù),但是混亂:很多完全相同的關(guān)鍵字沒有歸并到一起,也有個(gè)別的歸并到了一起,但匯總值沒有超過2的,如下:

        中國(guó)紅    1

        中國(guó)紅    1

        中國(guó)紅    1

        摩卡黑    2

        摩卡黑    2

    百度說,其他同仁遇到的大多是reduce沒有輸出結(jié)果,其原因是Reduce應(yīng)該用Iterable還是Iterator造成的,而且還是0.19和0.20版本時(shí)代的問題。而我有結(jié)果輸出,只是沒有完全執(zhí)行合計(jì)。Reduce代碼如下:

 static class MyReducer extends
   Reducer {
  LongWritable result = new LongWritable();
  public void reduce(Text key, Iterable values,
    Context context) throws IOException, InterruptedException {
   int sum = 0;
   for (IntWritable val : values) {
    sum += val.get();
   }
   result.set(sum);
   context.write(key, result);
  }
 }

莫非對(duì)Reduce處理中文Key有問題?不太可能。遂將所有Key用URLEncoder轉(zhuǎn)碼,結(jié)果仍然一樣,不能歸并。查半天,未果。

一覺醒來,忽然發(fā)現(xiàn)程序import中竟然還有IntWritable,我曾經(jīng)把所有Int改成了LongWritable,這個(gè)程序竟然漏了!看上面代碼中Class定義中使用了LongWritable,計(jì)算的時(shí)候卻使用的IntWritable,修改,再運(yùn)行,歸并正常。

    原來如此!Map和Reduce的數(shù)據(jù)類型不匹配通常會(huì)有ClassCastException,但LongWritable和IntWritable的轉(zhuǎn)換沒有報(bào)異常,默默的計(jì)算錯(cuò)了,竟然!

感謝各位的閱讀,以上就是“Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


文章標(biāo)題:Reduce統(tǒng)計(jì)結(jié)果匯總混亂怎么辦
文章來源:http://weahome.cn/article/poogii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部