hadoop基本数据类型:
java | hadoop | hadoop解释 |
byte | ByteWritable | 单字节数值 |
int | Intwritable | 整型数 |
double | Doublewritab|e | 双字节数值 |
float | Floatwritable | 浮点数 |
long | LongWritable | 长整型数 |
null(特殊) | Nullwritable | 当< key, value>中的key或 value为空时使用 |
String(引用) | Text | 使用UTF8格式存储的文本 |
BooleanWritabl |
注意事项:
- java语言中有两种类型,一种是基本类型,还有一种是引用类型。还有一个特殊的null类型即表达式null的类型,它没有名字。
- 数据类型都实现 Writable接口,以便用这些类型定义的数据可以被序列化进行
Serializable接口(java):
package java.io;
* @author unascribed
* @see java.io.ObjectOutputStream
* @see java.io.ObjectInputStream
* @see java.io.ObjectOutput
* @see java.io.ObjectInput
* @see java.io.Externalizable
* @since JDK1.1
*/
public interface Serializable {
}
没有任何方法的接口叫做标识接口,这个接口的主要作用是将类的实例持久化保存。序列化可以理解为保存,反序列化理解为读取。保存也不一定保存在本地,也可以保存到远程服务器。因此涉及到数据的读取和保存,都要类实现Serializable才可以
writable接口源码(hadoop):
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.apache.hadoop.io;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Stable;
@Public
@Stable
public interface Writable {
void write(DataOutput var1) throws IOException;
void readFields(DataInput var1) throws IOException;
}
writable方法的介绍:
write()把每个对象序列化到输入流
readField()把输入流字节反序列化