java - Storm 发射整数数组并检索它

标签 java arrays apache-storm emit

我正在将图像转换为二维整数数组。对此进行一些处理,然后我尝试以这种方式发出数组:

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/

相关文章:

javascript - 查找一个数组中与另一个数组中的任何项目相匹配的项目

ruby-on-rails - Rails - 防止发布请求从数组创建多行,同时仍保留数据

java - log4j-over-slf4j.jar 和 slf4j-log4j12.jar 冲突...但我没有 slf4j-log4j12.jar

real-time - Storm 最大喷口待定

java - 使用脚本引擎管理器评估 Java 字符串代码时出错

java - 代理基于 Spring 的 Controller 的有效用例是什么?

java - 安卓:在安卓模拟器上安装Wikitude

java - 更新文本区域

javascript - shift() 和 pop() 不是函数

java - Apache Storm worker 内存泄漏 - 堆外