轉自:http://www.51studyit.com/html/notes/20140403/52.html
Topology
1.定義兩個spout, 分別是genderSpout, ageSpout
Fields, ("id", "gender"), ("id", "age"), 最終join的結果應該是("id", "gender", "age")
2. 在設置SingleJoinBolt需要將outFields作爲參數, 即告訴bolt, join完的結果應該包含哪些fields
並且對於兩個spout都是以Fields("id")進行fieldsGrouping, 保證相同id都會發到同一個task
public class SingleJoinExample {
public static void main(String[] args) {
FeederSpout genderSpout = new FeederSpout(new Fields("id", "gender"));
FeederSpout ageSpout = new FeederSpout(new Fields("id", "age"));
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("gender", genderSpout);
builder.setSpout("age", ageSpout);
builder.setBolt("join", new SingleJoinBolt(new Fields("gender", "age")))
.fieldsGrouping("gender", new Fields("id"))
.fieldsGrouping("age", new Fields("id"));
}