-2

当我在测试环境中运行我的代码来测试我关于 kudu 插入的新代码时,它会向我报告:

此行已应用,无法修改。

我已经尝试调试我的代码并查看我的代码有什么问题,但它没有用

if((map.get(list.get(i))) instanceof Double){
    row.addDouble(list.get(i), (Double) map.get(list.get(i)));
    //System.out.println("Double type insert succeed : " + list.get(i) + "  :  " + map.get(list.get(i)));
    continue;
}

我想知道我的代码有什么问题,因为在我以前的代码中我可以正确运行但知道它不能

4

2 回答 2

0

如果没有完整的堆栈跟踪和其余代码,我只能猜测为什么会发生这种情况。

我的猜测是因为创建Insertrow对象的对象已插入 Kudu(使用KuduSession.apply),然后您尝试使用row.addDouble.

如果您不确定为什么,请查看如何插入 Kudu 的示例。 在创建对象的对象上KuduSession.apply调用方法,这将插入从该对象创建的所有对象的数据。这只能在一个对象上执行一次。之后,您使用创建一个新对象InsertPartialRowPartialRowInsertInsertInsertKuduTable.newInsert()

在您的情况下,您可能应该创建新的Insert使用KuduTable.newInsert()对象并在其上创建一个行对象。

于 2019-08-19T09:01:22.203 回答
0

在源代码中,该类是 PartialRow 有一个私有属性:冻结,它的默认值为 false,但在我的代码中,当我在其中调试时,我发现该值为 true,我认为这就是导致程序报告给我:该行已经申请,不能修改!求帮助。请

于 2019-08-19T07:15:39.837 回答