Text类型

Text类型使用变长int型存储长度,所以Text类型的最大存储为2G.

BytesWritable类型

ByteWritable类型是一个二进制数组的封装类型,序列化格式是以一个4字节的整数(这点与Text不同,Text是以变长int开头)开始表明字节数组的长度,然后接下来就是数组本身

NullWritable类型

NullWritable是一个非常特殊的Writable类型,序列化不包含任何字符,仅仅相当于个占位符。你在使用mapreduce时,key或者value在无需使用时,可以定义为NullWritable。

ObjectWritable类型

ObjectWritable是其他类型的封装类,包括java原生类型,String,enum,Writable,null等,或者这些类型构成的数组。当你的一个field有多种类型时,ObjectWritable类型的用处就发挥出来了,不过有个不好的地方就是占用的空间太大,即使你存一个字母,因为它需要保存封装前的类型。

GenericWritable类型

使用GenericWritable时,只需继承于他,他可以比objectwritable节省空间,推荐用generic代替object使用;
Writable的实现
IntWritable和LongWritable还有对应的变长VIntWritable和VLongWritable类,固定长度还是变长的选用类似与数据库中的char或者vchar。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-12-22
  • 2022-01-11
  • 2021-10-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-22
  • 2021-06-24
  • 2022-12-23
  • 2021-10-24
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案