使用storm分別進行計數和詞頻統計

2022-09-08 19:06:16 字數 1741 閱讀 6812

直接上**

public class localstormsumtopology 

private static final string num = "num";

/*** 傳送資料源的spout類,一般是繼承baserichspout這個類

*/public static class datasourcespout extends baserichspout

/*** 這是乙個死迴圈方法,會自動迴圈呼叫,這個方法用來傳送資料到下游

*/public void nexttuple()

/*** 宣告從spout中發射的資料的欄位名,在bolt階段可以通過這裡預設定的欄位名進行取值,類似於安卓中的使用sp傳輸,

* 欄位名和傳送出來的資料一一對應,這樣如果下游需要接收多個資料發射源,那麼可以通過該欄位名來做區別

** @param declarer

*/public void declareoutputfields(outputfieldsdeclarer declarer)

@override

public void close()

}public static class totalbolt extends baserichbolt

/*** 每從上游接收到乙個資料,就呼叫該方法**過來

** @param input 用來提取上乙個流程傳過來的資料

*/public void execute(tuple input)

/*** 為往下游傳送的資料加上欄位名,方面區別資料的**

* @param declarer

*/public void declareoutputfields(outputfieldsdeclarer declarer)

}}

直接上**

public class localworldcountstormtopology 

/*** 輸出每一行文字的spout

*/public static class datasourcespout extends baserichspout

public void nexttuple() , true);

try

}//執行完成一次之後,需要修改檔名,這樣就不用一直執行

fileutils.movefile(file, new file(file.getabsolutepath()+system.currenttimemillis()));

}} catch (ioexception e)

}public void declareoutputfields(outputfieldsdeclarer declarer)

}/**

* 統計詞頻的bolt

*/public static class countbolt extends baserichbolt

public void execute(tuple input) else

map.put(word, num);

system.out.println("~~~~~~~~~");

set> entries = map.entryset();

for (map.entryentry : entries)

}public void declareoutputfields(outputfieldsdeclarer declarer)

}}

使用bit進行計數統計

這個類的主要用途是使用bit計數,儲存使用int,乙個int有32位,可以記錄32個資料 public class arraybitmap 判斷num的第pointer位是否為1 param num 待修改的資料 param pointer 從0開始計數,從右到左數,待修改的位置 return bo...

Vue 分別原生JS和Vue實現計數器功能

用vue實現計數器功能,其中vue實現的 黑馬程式設計師vue教程給出,這裡對其css 進行了注釋,並且用原生js重新實現了一次。不能大於10 不能小於0 實現步驟 data中定義資料 num,min,max methods新增兩個方法sub 和add 使用v text將num設定給span標籤 使...

關鍵詞和相關詞如何布局使用

布局常見的版塊和作用 降低頁面的重複度,為其他頁面吸引蜘蛛促收錄 為特定頁面提高權重,提高或穩定該頁面的排名 除了提高當前頁面相關性,也有更新機制的作用 文字塊優化要怎麼做 嵌入相關詞,越多越好,不要堆砌,尤其是首頁,提高頁面相關性,也是變相的提公升主詞密度 文字塊是企業站中很重要的一部分,通常首頁...