级联 - cascading.tuple.TupleException: 未能设置值
Cascading - cascading.tuple.TupleException: failed to set a value
我正在尝试对每个元组应用 ScrubFunction 并 return 具有更新值的元组。
但是我得到了这样的异常..
Caused by: cascading.tuple.TupleException: failed to set a value, tuple may not be initialized with values, is zero length
示例代码:
TupleEntry argument = functionCall.getArguments();
Tuple result = new Tuple();
result.setInteger(0, argument.getInteger(0));
result.setString(1, argument.getString(1).toUpperCase());
result.setString(2, argument.getString(2));
result.setString(3, argument.getString(3));
result.setString(4, argument.getString(4));
result.setString(5, argument.getString(5));
functionCall.getOutputCollector().add(result);
如果我想更新 Tuple
和 return 更新值中的几个字段怎么办。
我可以在 TupleEntry
和 return 中直接更新吗
对于您的第一个问题:不要将值设置为元组,而是添加。
Tuple result = new Tuple();
result.addInteger(argument.getInteger(0));
// ...
第二个问题:是的。请在此处查看 API 文档:TupleEntry.setObject
希望这对您有所帮助:)
我正在尝试对每个元组应用 ScrubFunction 并 return 具有更新值的元组。
但是我得到了这样的异常..
Caused by: cascading.tuple.TupleException: failed to set a value, tuple may not be initialized with values, is zero length
示例代码:
TupleEntry argument = functionCall.getArguments();
Tuple result = new Tuple();
result.setInteger(0, argument.getInteger(0));
result.setString(1, argument.getString(1).toUpperCase());
result.setString(2, argument.getString(2));
result.setString(3, argument.getString(3));
result.setString(4, argument.getString(4));
result.setString(5, argument.getString(5));
functionCall.getOutputCollector().add(result);
如果我想更新 Tuple
和 return 更新值中的几个字段怎么办。
我可以在 TupleEntry
和 return 中直接更新吗
对于您的第一个问题:不要将值设置为元组,而是添加。
Tuple result = new Tuple();
result.addInteger(argument.getInteger(0));
// ...
第二个问题:是的。请在此处查看 API 文档:TupleEntry.setObject
希望这对您有所帮助:)