I tried out ShellBolt examples and it works like a charm. I went through the
multi-lang protocol doc as well and understand it at a high level.
Now what I dont understand is the following:
- With a shell bolt, how can you get the output of the external process (say
python process) and do something with it and
then emit the tuple from the Java code?
- This should be possible but somehow I have to make sure there is only one
emit that is happening from my shellbolt.
1. My Shellbolt gets the tuple
2. I then pass the data to the external python process
3. get the result/tuple from python process
4. Do something else with it in my java code and then emit the tuple to
downstream bolt
How would I be able to do this? Any examples/pointers would really help. So
the flow would be:
public static class SomeBolt extends ShellBolt implements IRichBolt {
public SomeBolt(){
super("python", "some.py");
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer)
{
declarer.declare(new Fields("someData"));
}
}
thanks
Aditya