gpt4 book ai didi

hadoop - 如何在 outputcollector.collect 中返回浮点值?

转载 作者:可可西里 更新时间:2023-11-01 16:34:30 26 4
gpt4 key购买 nike

在计算输出的数字平均值后,我无法返回 flaot 值。收集..任何人都可以帮助我吗??

公共(public)静态类 MapClass 扩展了 MapReduceBase 实现映射器{

private Text word = new Text();

public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
String line = value.toString();
String num = Integer.parseInt(num);

IntWritable one = new IntWritable(num);

word.set(“key”);
output.collect(word, one);

}

公共(public)静态类 Reduce 扩展了 MapReduceBase 实现 Reducer {

public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
int sum = 0;
int count=0;
int avg=0;
while (values.hasNext()) {
sum += values.next().get();
count++;
}
avg=sum/count;
output.collect(key, new IntWritable(avg));
}

最佳答案

您是否使用 org.apache.hadoop.io.FloatWritable 作为您的输出键或值类型(无论您希望将 float 存储在何处?

您还需要修改映射器/缩减器的泛型签名(取决于您计算平均值的位置,还需要修改您的作业配置以使用 FloatWritable 作为输出类类型(同样取决于您是否重新使用 float 作为输出键或值)。

如果您仍然遇到问题,请将一些代码发回到您的问题中

关于hadoop - 如何在 outputcollector.collect 中返回浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680206/

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