2016-03-28 12 views
0

Her bir tuple üzerinde ScrubFunction uygulamaya çalışıyorum ve tuple'ı güncellenen değerlerle döndürüyorum.Cascading - cascading.tuple.TupleException: bir değer ayarlayamadı

Ama böyle İstisna alıyorum ..

Caused by: cascading.tuple.TupleException: failed to set a value, tuple may not be initialized with values, is zero length 

Örnek Kod:

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); 

Ne ben bir Tuple birkaç alanları güncelleştirmek ve güncel değerlerini dönmek istiyorum.

Doğrudan TupleEntry numaralı güncelleştirmeyi güncelleyip iade edebilir miyim?

cevap

0

İlk sorunuz için: değerleri bir tuple ayarlamayın, yerine ekleyin.

Tuple result = new Tuple(); 
result.addInteger(argument.getInteger(0)); 
// ... 

İkinci sorunuz için: evet. Buradaki API belgesine bakın: TupleEntry.setObject

Bu yardımcı olur umarım :)