在java中使用storm的第一天,非常感谢您的帮助--我想在bolt中调用python脚本,以便进行一些计算。这个python脚本依赖于我希望传递给这个bolt的数字输入。这就是 ShellBolt 类,但我能找到的所有示例只调用一个没有任何参数的脚本(在构造函数中)。如何调用python脚本并传入依赖于输入元组的值?理想情况下,我可以从 execute ?
ShellBolt
execute
lpwwtiir1#
如果你仔细看看 WordCountTopology (即, splitsentence.py )从StormStarter中可以看到,python脚本实现了一个类,该类使用一个元组作为输入的方法。这基本上是你的 execute 方法在python中实现。Storm要来了 process 对于每个传入的元组 execute :
WordCountTopology
splitsentence.py
process
import storm class SplitSentenceBolt(storm.BasicBolt): def process(self, tup): words = tup.values[0].split(" ") for word in words: storm.emit([word]) SplitSentenceBolt().run()
在后台,storm派生了一个新的java UNIXProcess 执行pyhton脚本。你不需要自己做任何事。风暴帮你处理。
UNIXProcess
1条答案
按热度按时间lpwwtiir1#
如果你仔细看看
WordCountTopology
(即,splitsentence.py
)从StormStarter中可以看到,python脚本实现了一个类,该类使用一个元组作为输入的方法。这基本上是你的execute
方法在python中实现。Storm要来了process
对于每个传入的元组execute
:在后台,storm派生了一个新的java
UNIXProcess
执行pyhton脚本。你不需要自己做任何事。风暴帮你处理。