对象的序列化主要有两种用途:对象的持久化,即把对象转换成字节序列后保存到文件中。
hive的序列化的作用是可以方便的将数据加载到表中而不需要对数据进行转换,这样在处理海量数据时可以节省大量的时间。
序列化
序列化是hive对象转换为字节序列的过程;反序列化是字节序列恢复为Hive对象的过程。
SerDe说明hive如何去处理一条记录,包括Serialize/Deserilize两个功能。
Serialize把hive使用的java object转换成能写入hdfs的字节序列,或其他系统能识别的流文件;
Deserilize把字符串或者二进制流转换成hive能识别的java object对象。
比如:
select语句会用到Serialize对象, 把hive对象的hdfs数据解析出来;
insert语句会使用Deserilize,数据写入hdfs系统,需要把数据序列化让hive能识别。