zoukankan      html  css  js  c++  java
  • Hadoop权威指南: 专有数据类型

    Writable 和 WritableComparable接口

    Writable接口

    • ** Writable接口的主要目的是,当数据在网络上传输或从硬盘读写时,提供数据的序列化和反序列化机智 **

    • ** 所有用作mapper或reducer输入或输出的数据类型都必须实现这个接口 **

    Comparable接口

    • ** 用作键的数据有着更为严格的要求,除实现Writable接口之外,它必须实现标准Java中的Comparable接口 **
    • compare方法的返回值为-1(小于,<),0(=),1(大于>)
    • 作为一个方便使用的接口,Hadoop在org.apache.hadoop.io包里提供了一个WritableComparable接口,定义如下代码所示.
      public interface WritableComparable extends Writable, Comparable { }

    wrapper类

    ** Hadoop提供了包装Java原始类型并实现了WritableComparable的类,它们被放置在org.apache.hadoop.io包下.这些包装类如下. **

    原始包装类

    ** 这些类在概念上与原始包装类相似.它们保持一个原始值,该值既可以在创建类的时候创建,也可以通过setter方法设置 **
    ** 这些类有: **

    • BooleanWritable
    • ByteWritable
    • DoubleWritable
    • FloatWritable
    • IntWritable
    • LongWritable
    • VIntWritable(可变长度的整数类型)
    • VLongWritable(可变长度的长整数类型)

    数组包装类

    ** 这些类为其他Writable对象数组提供了可写封装. ** 例如这些类的实例可以储存IntWritable类型的数组,却不能储存原始的整型(int)数组.** 这些类需要继承Writable类 **
    ** 这些类如下所示. **

    • ArrayWritable
    • TwoDArrayWritable

    Map包装类

    ** 这些类允许使用java.util.Map接口作为键或者值,他们被定义为Map<Writable,Writable> 并有效管理部分内部运行时类型检查. ** 这就意味着弱化了编译类型检查
    ** 如下所示. **

    • AbstractMapWritable(这是其他具体的Writable map包装类的基类)
    • MapWritable(通用的map包装类,将Writable键映射为Writable值)
    • SortedMapWritable(MapWritable类的一个特殊实现,同时实现了SortedMap接口)
  • 相关阅读:
    Medication Reconciliation Overview
    The Info-Button Standard: Bring Meaningful Use To the Patient
    Configuring Time in Windows 7 and Win 200
    oracle补齐日期
    mysql-proxy
    Oracle:Authid Current_User的使用
    oracle的sqlldr常见问题
    hive的select重命名字段显示成中文
    python访问hive
    禁用SSL v2.0、SSL v3.0协议
  • 原文地址:https://www.cnblogs.com/bovenson/p/5730842.html
Copyright © 2011-2022 走看看