2 qq 21194023 qq_21194023 于 2016.02.26 10:10 提问

求mapreduce大神,看我这代码跑出来怎么没有结果?

public static class Map extends Mapper {
Text mk = new Text();

    public void map(Object key, Text value, Context context)
            throws IOException, InterruptedException {
        try {
            String[] line = value.toString().split("\t");
            while (line != null) {
                String one = line[0] + "\t" + line[1] + "\t" + line[2];
                String qm = line[3];
                String tg = line[4] + "\t" + line[5];
                System.out.println(one + "\t" + tg);
                if (qm.contains("*")) {
                    String[] two = qm.split("*");
                    for (String sign : two) {
                        mk.set(one + "\t" + sign + "\t" + tg);
                    }
                } else {
                    mk.set(one + "\t" + qm + "\t" + tg);
                }
                context.write(mk, NullWritable.get());

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

看看哪里出错,改一下
原文件实例数据
00022 000CE34D03F8B551F2346D19D8379B33 2013-10-09 [大天开]*[开天] F 车主
00022 000CE34D03F6B551F9904D19D8379B33 2013-10-09 [大天开]*[开天] X 新老用户
想要的到的数据
00022 000CE34D03F8B551F2346D19D8379B33 2013-10-09 [大天开] F 车主
00022 000CE34D03F8B551F2346D19D8379B33 2013-10-09 [开天] F 车主
00022 000CE34D03F6B551F9904D19D8379B33 2013-10-09 [大天开] X 新老用户
00022 000CE34D03F6B551F9904D19D8379B33 2013-10-09 [开天] X 新老用户

1个回答

a615625635
a615625635   2016.02.26 17:46

空格分割符不是\t \s 多个空格\s+

qq_21194023
qq_21194023 感谢你的回答,不过我这是Tab分割,问题在别的地方,我已经解决了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
编写MapReduce程序示例——求平均成绩
输入文件:由于不识别中文,所以暂时使用姓名拼音jiangxin 94 wangziwen 78 yangzi 83 wangkai 89 jiangxin 80 wangziwen 84 liutao 90 liutao 82 jiangxin 76 wangkai 77 wangkai 91 yangzi 86 jiangxin 88每一行为一个学
MapReduce程序处理hdfs中数据乱码问题
最近在写MapReduce程序,实现Writable接口时发现总是读不进中文字,读出来全是乱码,找了一晚上发现问题,原来hadoop只支持UTF-8的字符集,因此,在存储Text变量时要先把string变量转换成UTF-8的字符集,再给Text赋值。问题解决。
Hadoop(三)——利用MapReduce求平均成绩
环境配置在linux中使用Eclipse编译运行MapReduce程序请参考这篇文章数据集输入数据集每一行是学生的名字和学生的成绩(一个学生可有多门学科成绩); 在本地生成file1.txt file2.txt file3.txt三个文件并且上传到hdfs上的averageScore文件夹; 源代码 public static class Map extends Mapper<LongWr
MapReduce设置Map和Reduce函数,但是map输出结果后,reduce没有输出,也没有报错
主要原因是reduce输入的格式和map输出的格式不一致,请注意查看格式匹配!
Hive查询在MapReduce上的执行过程
Hive查询首先被转换成物理查询计划,物理查询计划通常包含多个MapReduce作业,而一个MapReduce作业的输出可以作为另一个MapReduce作业的输入。Hive为Hive查询设计的MapReduce作业有固定的模式:Mapper类为org.apache.hadoop.hive.ql.exec.ExecMapper,Reducer类为org.apache.hadoop.hive.ql.e
hbase+mapreduce计数表行数功能
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘tablename’
MapReduce运用之粉丝互粉
项目名称:粉丝互粉 项目说明:如下所示,分别给出微博用户信息和其粉丝信息,如第一行:“:”左边的代表用户A,右边是关注A的粉丝。 用户和粉丝之间是单向关系,也即E是A的粉丝,但是A不一定是E的粉丝。 项目需求:用mapreduce找出两两之间有共同粉丝的用户对,及他俩的共同好友。如:A-B    C,E            A:B,C,D,F,E,O            B:A,C,
MapReduce处理数据平均值与数值大小排行比较
一:计算数据平均值 在map中将名称作为key 数据为value写出去 /* * 计算平均成绩 * 名字作为key 分数值为value写出去 */ public class AverageMap extends Mapper { protected void map( LongWritable key, Text value, org.apache.hadoop.ma
MapReduce案例学习(2) 求各个部门的人数和平均工资
设计思路: map阶段:map读取每行记录,将部门作为key,工资作为value输出; reduce阶段:将相同的key即同部门的工资作叠加运算得出总工资,同时在遍历value时,定义一个计数变量,统计该部门的人员数,最后总工资除以人员数得出该部门的平均工资。 package week06; import java.io.IOException; import java.text.Dat
mapreduce编程:求平均值
求平均值的程序: package my.hadoopstudy; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job;