java—如何在shellbolt中调用元组脚本

nwwlzxa7  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(355)

在java中使用storm的第一天,非常感谢您的帮助--我想在bolt中调用python脚本,以便进行一些计算。这个python脚本依赖于我希望传递给这个bolt的数字输入。这就是 ShellBolt 类,但我能找到的所有示例只调用一个没有任何参数的脚本(在构造函数中)。
如何调用python脚本并传入依赖于输入元组的值?理想情况下,我可以从 execute ?

lpwwtiir

lpwwtiir1#

如果你仔细看看 WordCountTopology (即, splitsentence.py )从StormStarter中可以看到,python脚本实现了一个类,该类使用一个元组作为输入的方法。这基本上是你的 execute 方法在python中实现。Storm要来了 process 对于每个传入的元组 execute :

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脚本。你不需要自己做任何事。风暴帮你处理。

相关问题