zoukankan      html  css  js  c++  java
  • MapReduce实例——求平均值,所得结果无法写出到文件的错误原因及解决方案

    1.错误原因

      mapreduce按行读取文本,map需要在原有基础上增加一个控制语句,使得读到空行时不执行write操作,否则reduce不接受,也无法输出到新路径。

    2.解决方案

    原错误代码

    public void map(Object key,Text value,Context context) throws IOException, InterruptedException
    {  
        String line=value.toString(); 
        System.out.println(line);  
        String arr[]=line.split("	");  
        newKey.set(arr[0]);  
        int click=Integer.parseInt(arr[1]);  
        context.write(newKey, new IntWritable(click));  
    } 

    更正后的代码

    public void map(Object key, Text value, Context context)  throws IOException, InterruptedException 
    {
        String line = value.toString();
        System.out.println(line);
        if(!("".equals(line)))//增加控制语句,使得line为”“时能够停止。
        {
        String arr[] = line.split("	");
        newKey.set(arr[0]+" ");//把key增加“ “一个空格字符,使得结果之间有间距
        int click = Integer.parseInt(arr[1]);
        context.write(newKey, new IntWritable(click));        
        }
    }
  • 相关阅读:
    Linux内核使用的GNUC扩展
    linux常用命令--开发调试篇
    代码示例_poll的多路复用
    硬件_红外传感器
    硬件_霍尔感应器
    全志_功能引脚配置_sys_config.fex
    知识_嵌入式常用词汇
    代码示例_Input 按键驱动
    Vmware_安装_tools
    Ubunt_配置_start
  • 原文地址:https://www.cnblogs.com/iCheny/p/9985806.html
Copyright © 2011-2022 走看看