我有一個可迭代Object.To轉換IntWriter爲int我們可以使用get()method.Is有沒有辦法來檢索可迭代Intwriter object.I的第一個值試圖Hadoop IntWritable可通過索引檢索值?
Iterator<IntWritable> values;
values.get(0).get() //To retrieve the first value.
我有一個可迭代Object.To轉換IntWriter爲int我們可以使用get()method.Is有沒有辦法來檢索可迭代Intwriter object.I的第一個值試圖Hadoop IntWritable可通過索引檢索值?
Iterator<IntWritable> values;
values.get(0).get() //To retrieve the first value.
使用番石榴:
Iterable<IntWritable> iterable = ...;
int first = Iterables.get(iterable, 0).get();
或者Java8:
int value = StreamSupport.stream(iterable.spliterator(), false).findFirst().get().get();
你正在尋找這個?
Iterator<IntWriteable> itr = iterable.iterator();
while (itr.hasNext()) {
System.out.println(itr.next().get());
break;
}
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));
}
你可能會考慮解釋你的代碼 – Squiddie 2017-10-16 11:32:07
都能跟得上我問Hadoop的數據類型IntWritable不字符串我知道strings.Thanks。 – user1613360 2014-10-19 07:38:57
現在有道理嗎? – SMA 2014-10-19 08:37:24
是的,但我的問題是不同的我想要索引0的第一個元素,而不使用迭代器。 – user1613360 2014-10-19 08:56:07