Trident wordCount例子解讀

2021-07-10 16:19:32 字數 1194 閱讀 9490

這個手冊,首先就給了wordcount的例子。wordcount就特麼這麼好理解麼,介面文件上說明少的掉渣啊。吐槽完畢,例子主要分為兩個步驟:1. 構建資料來源;2. 構建拓撲。

1. 創造源資料

fixedbatchspout spout = new fixedbatchspout(new fields("sentence"), 3,

new values("the cow jumped over the moon"),

new values("the man went to the store and bought some candy"),

new values("four score and seven years ago"),

spout.setcycle(true);

效果:產生乙個源資料流。處理過程中至多可以被分成3個batch,batch的name是「sentence」。不停的將上面的4個句子迴圈形成資料流。

2. 構建topology

tridenttopology topology = new tridenttopology();        

tridentstate wordcounts =

topology.newstream("spout1", spout)

.each(new fields("sentence"), new

split(), new fields("word"))

.groupby(new fields("word"))

.persistentaggregate(new memorymapstate.factory(), new count(), new fields("count"))

.parallelismhint(6);

每行依次的效果:

1. 以spout為源建立流;

2. 遍歷流中name為「sentence」的batch,作為split函式的輸入,輸出name為「word」的tuple。

3. 對name為「world」的tuple做groupby操作;

4. 對groupby的結果,做count操作,count為內建聚合方法,結果儲存在記憶體中,存為name為」count」的tuple。每個batch的計算結果再進行聚合(疊加)。

5. 併發度為6,也就是最多允許6個執行緒。即executor的數量。

vfork 例子祥解

vfork 例子祥解 include include include include int main int argc,const char argv else if child t 0 else printf end n return 0 遮蔽 exit 0 後的gdb除錯資訊 breakpoi...

QML官方例子Calculator初步解析

qt scxml calculator qml example 這個系統自帶的例子原本主要是用來說明scxml機制的,但是由於計算器的經典和簡潔,我認為用來練習qml非常合適,原本的例子還有一些問題,經過修改後需要能夠適應手機全屏,我將將其保留,作為計算器使用。這個就像濃眉毛的等於號是特地加上去的。...

override與new 用兩個小例子來解釋

例一 class program public class a5 public virtual void methodb public class b5 a5 例二 class a public virtual void aa class b a public override void aa 將這...