ZBLOG

输出文件中没有结果,请根据信息修改代码问题File System Counters FILE: Number of bytes read=378 FILE: Number of bytes written=998300 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of ...

根据输出信息,可以看出Mapper阶段没有输出任何记录,可能是因为读取的数据格式不正确或者切分后的字段数量不正确。建议在Mapper类中加入日志输出来调试代码:

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
    String line = value.toString();
    String[] fields = line.split("\t");
    // 检查使用数量是否为数字
    try {
        int count = Integer.parseInt(fields[10]);
        // 获取时间
        String timeStr = fields[1];

        // 将日期时间字符串转换为Date对象,并提取小时数
        Date date = formatter.parse(timeStr);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);

        if (hour >= 12 && hour <= 15) { // 判断是否在12点到15点之间
            time.set(fields[1]);
            context.write(time, new IntWritable(count));
            System.out.println("Mapper Output: " + time.toString() + "\t" + count);
        }
    } catch (NumberFormatException e) {
        return;
    } catch (ParseException e) {
        return;
    }
}

运行程序后,在控制台中查看输出结果,如果没有输出,则说明读取的数据格式或者切分后的字段数量有问题,需要进一步检查数据文件格式和Map函数实现。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5094

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?