我正在经历Apache Storm的一个例子。
以下是Bolt类的片段
public void declareOutputFields(OutputFieldsDeclarer declarer){
declarer.declare(new Fields(" word"));
}
声明用于表示博尔特将发射的那种场。所以上面的语法是什么意思,当它说"新领域("字")"。
答案 0 :(得分:2)
它定义了输出元组的模式。即,元组具有多少属性以及每个属性的名称。
Fields("word")
定义了一个名为word
的单个属性的模式。因此,如果您调用collector.emit(new Values(...))
,则参数列表必须包含单个值。
在接收方(即消耗输出流的螺栓)上,您可以通过索引或名称访问属性;名称是生产者通过Fields
声明的名称。
在您的示例中,消费者可以通过input.getX(0)
或input.getXByName("word")
访问该属性。