创建将所有字段作为值的元组的另一种方法是创建一个bean并将其传递到元组中。
给定以下类:
public class DataBean implements Serializable {
private static final long serialVersionUID = 1L;
// add more properties as necessary
int id;
String word;
public DataBean(int id, String word) {
setId(id);
setWord(word);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
}
在一个bolt中创建并发出数据库:
collector.emit(new Values(bean));
@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
try {
DataBean bean = (DataBean)tuple.getValue(0);
// do your bolt processing with the bean
} catch (Exception e) {
LOG.error("WordCountBolt error", e);
collector.reportError(e);
}
}
Config stormConfig = new Config();
stormConfig.registerSerialization(DataBean.class);
// more stuff
StormSubmitter.submitTopology("MyTopologyName", stormConfig, builder.createTopology());
collector.emit(new Values(word, bean));
我一直在寻找如何将apache storm用作CEP的方法,但似乎有两个概念(流处理和复杂事件处理),在CEP中,您可以编写类似sql的查询,并在数据流上执行它们,如ESPER,但我在apache storm中找不到类似的东西,这是否意味着apache storm是一个数据流处理器而不是CEP?
我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。 本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已
问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。
是否可以从加载的中删除元素而不创建新元素?例如,类似这样的事情:
我有一个.docx文档,顶部有一些表格。它们包含需要替换的文本占位符,这很好。但是,这些表中的一个需要重复,并用不同的值填充。我能够深度复制表并将其添加到文档的末尾,但我不知道如何将其插入适当的位置。我尝试在模板表的索引处添加副本,但在LibreOffice中会出现“未知的图形格式”错误,即使删除了原件: 我不知道如何最好地处理这件事。
如何定义条件数组元素?我想做这样的事情: 这按预期工作,并导致,但如果我将设置为