如何在 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 将为每个传入的元组调用 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 脚本。你不需要自己做任何事情。 Storm 为您处理。
第一天在 Java 中玩风暴,非常感谢您的帮助 -- 我想在螺栓中调用 Python 脚本以进行一些计算。这个 Python 脚本取决于我希望传递给这个螺栓的数字输入。有 ShellBolt
class 但我能找到的所有示例都只是调用一个没有任何参数的脚本(在构造函数中)。
如何调用 Python 脚本并根据输入元组传入值?理想情况下,我可以从 execute
?
如果您仔细查看来自 storm-starter 的 WordCountTopology
(即 splitsentence.py
),您会发现 Python 脚本实现了一个 class以元组作为输入的方法。这基本上是您在 Python 中实现的 execute
方法。 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 脚本。你不需要自己做任何事情。 Storm 为您处理。