我想在项目中使用Apache Storm的TridentTopology。我发现很难理解storm.trident.Stream类中的.each()函数。下面是他们的教程中给出的示例代码供参考:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="chartProfileOutput"></div>
我不理解方法.each()的签名。以下是我的理解。如果我错了,请纠正我,并为我的知识提供更多信息。
。每个()
答案 0 :(得分:3)
第一个参数是输入元组的投影。在您的示例中,只有名为“sentence”的字段提供给Split
。如果您的来源使用架构Fields("first", "sentence", "third")
发出元组,则只能访问Split
中的“句子”。此外,“句子”在Split
中的索引为零(而不是一个)。注意它不是输出上的投影 - 所有字段都将保留在输出元组中!这只是Split
内整个元组的有限视图。
最后一个参数是Value
中emit()
的{{1}}架构。此字段名称作为新属性附加到输出元组。因此,输出元组的模式是输入元组的模式(原始模式,不是由第一个参数投影)加上最后一个参数的字段。
请参阅文档中的“功能”部分:https://storm.apache.org/releases/0.10.0/Trident-API-Overview.html