mapreduce写入HBase,数据异常

本文针对使用HBase存储过程中出现的数据错乱问题进行详细分析,提供了具体的代码示例及可能的解决方案。通过调整数据类型转换方式,确保了数据正确无误地写入HBase。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写入HBase的数据不对

读入的数据是


Hello Hadoop

Hadoop is easy


存入数据库就成了


Hellop

Hadoop

isllop

easy



public class WordCountReducerHbase extends TableReducer<Text,IntWritable,
        ImmutableBytesWritable>{
    private IntWritable result = new IntWritable();
    public void reduce(Text key,Iterable<IntWritable> values, Context context)
                throws IOException,InterruptedException{
        int sum = 0;
        for(IntWritable val :values){
            sum += val.get();
        }
        result.set(sum);
        Put put = new Put(key.toString().getBytes()); //put实例化,每一个词存一行
        //列族为content,列修饰符为count,列值为数目
        System.out.println("key="+key.toString());
        put.add(Bytes.toBytes("content"), Bytes.toBytes("count"),
                Bytes.toBytes(String.valueOf(sum)));
        System.out.println("put="+put.getRow().toString());
        context.write(new ImmutableBytesWritable(key.toString().getBytes()), put);
    }

}


key 是从map获取的值

put的时候改成如上红色部分,先转换成String,再转换成Byte[]存储


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值