我有一个可迭代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