Hi all,
I am experimenting with writing bolts in Python and was wondering how the
relationship between the Java and Python code works. For example, I have a
Python bolt that looks like this:
class ScanCountBolt(storm.BasicBolt):
def __init__(self):
#super(ScanCountBolt, self).__init__(script='scancount.py')
self._count = defaultdict(int)
def process(self, tup):
product = tup.values[0]
self._count[product] += 1
storm.emit([product, self._count[product]])
ScanCountBolt().run()
And my corresponding Java code looks like this:
public static class ScanCount extends ShellBolt implements IRichBolt {
public ScanCount() {
super("python", "scancount.py");
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("product", "scans"));
}
@Override
public Map<String, Object> getComponentConfiguration() {
return null;
}
}
Is that all I need to make it work or do I need to declare the data structures
in the Java code as well. I am a bit confused…
-Ashu