首先道歉一下,我沒有找到mapreduce的板塊,只好把這個問題發到這來了
又來麻煩各位大神了!問題是這樣的:
假如在一天時間內,統計每個小時內該網頁有多少次訪問記錄,以及這么多訪問記錄中有多少個用戶,初始格式如下:
hourid url
0 com
0 com
0 cn
0 net
1 org
2 com
2 com
2 cn
........
輸出格式類似下面:
hourid visitscount userscount
0 4 3
1 1 1
2 3 2
一個時間段內有幾條訪問記錄,visitscount就是幾;userscount指的是(com,cn,net)
如果用wordcount的那種實作方法的話,都是根據key來直接累加value的,完成上面的功能難道要寫兩個java程式嗎,可是我想同時輸出到一個檔案里面,實在不知道該怎么輸出如上所示的格式,還請大神支招。
或者告訴我一下實作思路也可以,我現在是一頭霧水,再次感謝啦!!
uj5u.com熱心網友回復:
Map 輸出 key為hourid,value為urlReduce 里面迭代處理values,values的大小就是visitscount,values去重復就是userscount
一個MapReduce
uj5u.com熱心網友回復:
謝謝!我獲得了visitscount值了,我想問一下values去重復該怎么實作呢
uj5u.com熱心網友回復:
一個Map變數就可以實作了
uj5u.com熱心網友回復:
是一個Set變數就可以實作了uj5u.com熱心網友回復:
是一個Set變數就可以實作了
嗯,謝謝你的建議,我已完成了。最后還有個問題,希望您能不吝賜教。
我如何讓內容輸出到csv檔案中呢,也就是保存為csv檔案。
我在reduce中加入CsvWriter之后總是覆寫了原先的資料只保留一條資料。可能是 wr.close(); 的緣故,但去掉也不對。
很是糾結應該怎么處理
uj5u.com熱心網友回復:
你是在reducer里面定義一個全域變數在reduce方法中收集要輸出的內容,然后在cleanup方法中做檔案寫入輸出uj5u.com熱心網友回復:
你是在reducer里面定義一個全域變數在reduce方法中收集要輸出的內容,然后在cleanup方法中做檔案寫入輸出
嗯呢 我還有個問題,要是計算每個時間段內每個url出現的次數,該怎么算,
uj5u.com熱心網友回復:
用一個Map變數統計URL次數就可以了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/100200.html
標籤:Spark
下一篇:Spark clear問題
