gpt4 book ai didi

java - 将 IntWritable 转换为 int

转载 作者:可可西里 更新时间:2023-11-01 14:11:51 43 4
gpt4 key购买 nike

我有以下代码,我不明白为什么在突出显示的行中使用了 get() 方法。如果我删除 get() 方法,它会抛出一个错误。

我可以从中得到的是:get() 方法返回 IntWritable 的 int 值。如果我错了,请纠正我。

public void reduce(IntWritable key, Iterator<IntWritable> values, OutputCollector<IntWritable, IntWritable> output, Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get(); //error when removing the get()
}
}

最佳答案

你的理解是正确的。 RamPrasad G's answer也是正确的(+1),但是,只是为了更清楚:

sum 是整数。 values 是一个 IteratorIntWritable 元素,所以 values.next() 是一个 IntWritable。现在,hadoop的数据类型IntWritable并不等同于java的原始类型int,即使它们用于同一件事:存储整数值。

因此,您不能将 IntWritable 添加到 int(如果删除 get() 方法,就会发生这种情况)。它们不是同一类型。您必须将 IntWritable 转换为 int,这是通过 get() 方法完成的。

关于java - 将 IntWritable 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37269940/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com