本文共 1191 字,大约阅读时间需要 3 分钟。
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见
SerDe 是 Serializer/Deserializer 的简写。
hive使用 SerDe 进行行对象的序列与反序列化。最后实现把文件内容映射到 hive 表中的字段数据类型。
为了更好的阐述使用 SerDe 的场景,我们需要了解一下 Hive 是如何读数据的(类似于 HDFS 中数据的读写操作):
HDFS files –> InputFileFormat –>–> Deserializer –> Row objectRow object –> Serializer –> –> OutputFileFormat –> HDFS files
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]
如上创建表语句, 使用 row format 参数说明SerDe的类型。
可以创建表时使用用户自定义的 SerDe 或者 native SerDe, 如果 ROW FORMAT 没有指定或者指定了 ROW FORMAT DELIMITED 就会使用 native SerDe。
:
转载地址:http://hzgji.baihongyu.com/