hadoop的Writable常规使用

一、writable接口

二、使用

1、常规不讲

例如:BooleanWritable、IntWritable、Text等,可通过构造器或者set方法创建,get方法获得。

2、IntWritable、LongWritable、VintWritable和VlongWritable

其中变长类型能节省储存空间,尤其是在-127到127之间的数值;
而对于数值在整个值域空间分布均匀地情况下定长更好,但一般这种情况比较少;
VintWritable和VlongWritable其实是一样的,不用特地转化。

3、ObjectWritable(基本已被废弃)

`   //简单使用
    ObjectWritable object = new ObjectWritable();
    object.set(new byte[]{1,2,3});
    Object o = object.get();`
缺点:构造浪费(需要多次判断才能判断出类型),占用空间大。

4、GenericWritable(ObjectWritable的替代方法)

如果已知类型且类型数量比较少,最好用GenericWritable
`/**
     * 使用方法:
     *  1、创建新类继承GenericWritable
     *  2、实现getTypes方法
     *  3、private static Class[] myclass=new Class[]{Text.class, IntWritable.class, FloatWritable.class};
     */
    public class MyGenericWritable extends GenericWritable {
        private static Class[] myclass=new Class[]{Text.class, IntWritable.class, FloatWritable.class};
        protected Class<? extends Writable>[] getTypes() {
            return myclass;
    }
}`

5、ArrayWritable

`ArrayWritable arrayWritable = new ArrayWritable(Text.class);
 arrayWritable.set(new IntWritable[6]);`

6、MapWritable和SortedMapWritable

`MapWritable mapWritable = new MapWritable();
 mapWritable.put(new Text("first"),new IntWritable(1));`
 SortedMapWritable用于排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值