小编use*_*623的帖子

读取包装在Hadoop ArrayWritable中的值

我是Hadoop和Java的新手。我的映射器输出文本和Arraywritable。我在读取ArrayWritable值时遇到麻烦。将.get()值强制转换为整数。映射器和化简器代码已附加。有人可以帮助我更正我的reducer代码以读取ArrayWritable值吗?

public static class Temp2Mapper extends Mapper<LongWritable, Text, Text, ArrayWritable>{
    private static final int MISSING=9999;

    @Override public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{
        String line = value.toString();
        String date = line.substring(07,14);
        int maxTemp,minTemp,avgTemp;

        IntArrayWritable carrier = new IntArrayWritable();
        IntWritable innercarrier[] = new IntWritable[3];
        maxTemp=Integer.parseInt(line.substring(39,45));
        minTemp=Integer.parseInt(line.substring(47,53));
        avgTemp=Integer.parseInt(line.substring(63,69));
        if (maxTemp!= MISSING)
        innercarrier[0]=new IntWritable(maxTemp); // maximum Temperature
        if (minTemp!= MISSING)
        innercarrier[1]=new IntWritable(minTemp); //minimum temperature
        if (avgTemp!= MISSING)
        innercarrier[2]=new IntWritable(avgTemp); // average temperature of 24 hours

        carrier.set(innercarrier);
        context.write(new Text(date), carrier); …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce

3
推荐指数
1
解决办法
6246
查看次数

标签 统计

hadoop ×1

mapreduce ×1