如何在 shellbolt 的元组上调用脚本

How to call script on tuple in shellbolt

第一天在 Java 中玩风暴,非常感谢您的帮助 -- 我想在螺栓中调用 Python 脚本以进行一些计算。这个 Python 脚本取决于我希望传递给这个螺栓的数字输入。有 ShellBolt class 但我能找到的所有示例都只是调用一个没有任何参数的脚本(在构造函数中)。

如何调用 Python 脚本并根据输入元组传入值?理想情况下,我可以从 execute?

生成一个 shell 进程吗?

如果您仔细查看来自 storm-starter 的 WordCountTopology(即 splitsentence.py),您会发现 Python 脚本实现了一个 class以元组作为输入的方法。这基本上是您在 Python 中实现的 execute 方法。 Storm 将为每个传入的元组调用 processexecute:

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 脚本。你不需要自己做任何事情。 Storm 为您处理。