官网中这样介绍serde:https://cwiki.apache.org/confluence/display/Hive/SerDe:
SerDe Overview
SerDe is short for Serializer/Deserializer. Hive uses the SerDe interface for IO. The interface handles both serialization and deserialization and also interpreting the results of serialization as individual fields for processing.
A SerDe allows Hive to read in data from a table, and write it back out to HDFS in any custom format. Anyone can write their own SerDe for their own data formats.
翻译为:
SerDe是Serializer/Deserializer的缩写。Hive使用SerDe接口进行IO。该接口同时处理序列化和反序列化,并将序列化结果解释为单独的字段进行处理。
SerDe允许Hive从表中读入数据,并以任何自定义格式将数据写回HDFS。任何人都可以为自己的数据格式编写自己的SerDe。
What is a SerDe?
SerDe is a short name for “Serializer and Deserializer.”
Hive uses SerDe (and FileFormat) to read and write table rows.
HDFS files --> InputFileFormat --> <key, value> --> Deserializer --> Row object
Row object --> Serializer --> <key, value> --> OutputFileFormat --> HDFS files
SerDe是什么?
SerDe是“序列化器和反序列化器”的简称。
Hive使用SerDe(和FileFormat)来读写表行。
HDFS文件——> InputFileFormat——> <key, value>——> Deserializer——>行对象
行对象——> Serializer——> <key, value>——> OutputFileFormat——> HDFS文件
- 在我们平时的建表语句中,就其实有我们的serde。有的直接显示的指明何种serde,有的缩写了。
- 比如:
STORED AS ORC
。其实这个就是缩写了。隐式的说明这是一个serde。根据官网,以上和下面这个相同的意思。
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'