我正在将图像转换为二维整数数组。对此进行一些处理,然后我尝试以这种方式发出数组:
collector.emit( new Values ( scaledImageMatrix ) );
然后我尝试在另一个 Bolt 中检索数据,如下所示:
int [][] imageMatrix = input.get("scaled-image-matrix");
但我收到错误
incompatible types
[ERROR] found : java.lang.Object
[ERROR] required: int[][]
有什么建议吗?
更新:
我尝试了这个int [][] imageMatrix = (int[][])input.get("scaled-image-matrix");
我得到了这个错误:
java.lang.IllegalArgumentException: Tuple created with wrong number of fields. Expected 1 fields but got 190 fields
那么我应该将问题改为:如何发出二维数组?
最佳答案
我知道这是一个老问题,但这也很有用。原始数组可以像任何其他对象一样在 execute(Tuple input)
方法中发出和接收,您只需使用 getValue(fieldName)
方法而不是 get (字段名称)
:
int[][] imageMatrix = (int[][]) input.getValue("scaled-image-matrix")
关于java - Storm 发射整数数组并检索它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290778/