storm tuple.getintegerbyfield未按预期工作

myzjeezk  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(250)

我有一个元组,第一列是 "affectedAccount" ```
source: source-spout:12, stream: default, id: {}, [1, 11455455, 1288, 20180717, 000808, 1, 6, 1, d, 1, Y, 1.250000, 6, , , , , , , ]

当我跑的时候

tuple.getIntegerByField("affectedAccount");

它抛出 `ClassCastException` 当我跑的时候

this.affectedAccount = Integer.parseInt(tuple.getStringByField("affectedAccount"));

它工作正常,为什么它不工作,即使值是整数
vatpfxk5

vatpfxk51#

我猜第一列的类型实际上不是整数,而是字符串。看看tuple.getintegerbyfield的实现https://github.com/apache/storm/blob/efb2e9a337f9320efd7e5873e493532aa58f341c/storm-client/src/jvm/org/apache/storm/tuple/tupleimpl.java#l174.
原因是什么 this.affectedAccount = Integer.parseInt(tuple.getStringByField("affectedAccount")); 工作原理是字段实际上是字符串类型。

相关问题