hadoop自带的writable类型

Hadoop 中,并没有使用Java自带的基本类型类(Integer、Float等),而是使用自己开发的类。Hadoop 自带有很多序列化类型,大致分为以下两种:

  • 实现了WritableComparable接口的类

  基础:BooleanWritable | ByteWritable

  数字:IntWritable | VIntWritable | FloatWritable | LongWritable | VLongWritable | DoubleWritable

  高级:NullWritable | Text | BytesWritable | MDSHash | ObjectWritable | GenericWritable

  • 仅实现了Writable接口的类

  数组:ArrayWritable | TwoDArrayWritable

  映射:AbstractMapWritable | MapWritable | SortedMapWritable

为便于理解 Hadoop 自带的 Writable 类型,我们使用以下表格展示 Java 基本类型和 Writable 的对应关系

Java 基本类型

Writable 实现

字节

boolean

BooleanWritable

1

byte

ByteWritable

1

int

IntWritable

4

float

FloatWritable

4

long

LongWritable

8

double

DoubleWritable

8

  针对上述 Hadoop 中的Writable类型,我们只简单介绍一下 Text。Text 类是一种UTF-8 格式的 Writable 类型。可以将它理解为一种与 java.lang.String 类似的 Writable 类型。Text 使用int型在字符编码中存储字节数,最大值是 2GB。它有一个 find() 方法,相当于 Java 的 String 中的 indexOf() 方法。 主要通过 set(byte[] utf8) 方法重用 Text 实例,代码如下

  Text text = new Text("hadoop");//构造一个Text对象

  text.set("autoNavi");//重新赋值

转载于:https://www.cnblogs.com/codeOfLife/p/5400427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值