2014-10-19 53 views
-1

我有一個可迭代Object.To轉換IntWriter爲int我們可以使用get()method.Is有沒有辦法來檢索可迭代Intwriter object.I的第一個值試圖Hadoop IntWritable可通過索引檢索值?

Iterator<IntWritable> values; 
values.get(0).get() //To retrieve the first value. 

回答

0

使用番石榴:

Iterable<IntWritable> iterable = ...; 
int first = Iterables.get(iterable, 0).get(); 

或者Java8:

int value = StreamSupport.stream(iterable.spliterator(), false).findFirst().get().get(); 
0

你正在尋找這個?

Iterator<IntWriteable> itr = iterable.iterator(); 
while (itr.hasNext()) { 
    System.out.println(itr.next().get()); 
    break; 
} 
+0

都能跟得上我問Hadoop的數據類型IntWritable不字符串我知道strings.Thanks。 – user1613360 2014-10-19 07:38:57

+0

現在有道理嗎? – SMA 2014-10-19 08:37:24

+0

是的,但我的問題是不同的我想要索引0的第一個元素,而不使用迭代器。 – user1613360 2014-10-19 08:56:07

0
public void reduce(Text key, Iterable<IntWritable> values, Context context) 
      throws IOException, InterruptedException { 

     int sum = 0; 
     for (IntWritable value : values) { 
      sum += value.get(); 
     } 
     // big 2 
     context.write(key, new IntWritable(sum)); 
    } 
+0

你可能會考慮解釋你的代碼 – Squiddie 2017-10-16 11:32:07