Hive 表存储文件格式
上一章讲解了hive是如何创建表,语法当中可以通过STORED AS指定表存储的文件格式。hive支持Hadoop中常用的几种文件格式,如:TextFile、SequenceFile、RCFile、AVRO、ORC和Parquet格式。
Hive TextFile文本文件格式
Hive 文本文件格式是默认的存储格式。文本文件格式在大多数应用程序中非常常见。
数据按行存储,每一行都是一条记录。每行都以换行符 (\n) 结束,hive文本当中默认的分隔表示如下:
\n | 每行一条记录 |
^A (八进制 \001) | 分隔列 |
^B (八进制 \002) | ^B 分隔ARRAY或者STRUCT中的元素,或者MAP中多个键值对之间分隔 |
^C(八进制 \003) | ^C 分隔MAP中键值对的“键”和“值” |
^:在Linux通过ctrl+v输入的,^A 就是通过crtl+v然后再crtl+a输入的。
stu.txt数据如下:
例1、hive提供了从本地文件加载文件到hive表中的方法,如下,把三位学生信息的txt文件加载到hive表当中:
LOAD DATA LOCAL INPATH '/usr/local/stu.txt' INTO TABLE stuinfo;
导入结果如下:
Hive SequenceFile序列文件格式
序列文件是 Hadoop基于行存储的文件,它以二进制键值对形式存储值。使用序列文件的主要优点是将两个或多个文件合并为一个文件。
通过在 Hive CREATE TABLE 命令的末尾添加存储选项“STORED AS SEQUENCEFILE”指定存储的是序列文件。
Hive RCFile文件格式
RCFile是Hive推出的一种专门面向列的数据格式。 它遵循“先按列划分,再垂直划分”的设计理念。如果您需要一次执行多行,那么您可以使用 RCFile 格式。
通过在 Hive CREATE TABLE 命令的末尾添加存储选项“STORED AS RCFILE“指定存储的是RCFile文件。
Hive Avro文件格式
Avro是一种用于支持数据密集型的二进制文件格式。它的文件格式更为紧凑,若要读取大量数据时,Avro能够提供更好的序列化和反序列化性能。
通过在 Hive CREATE TABLE 命令的末尾添加存储选项“STORED AS Avro“指定存储的是RCFile文件。
Hive ORC 文件格式
ORC File,它的全名是Optimized Row Columnar (ORC) file,其实就是对RCFile做了一些优化。官方介绍当中,这种文件格式可以提供一种高效的方法来存储Hive数据。它的设计目标是来克服Hive其他格式的缺陷。运用ORC File可以提高Hive的读、写以及处理数据的性能。
通过在 Hive CREATE TABLE 命令的末尾添加存储选项“STORED AS ORC“指定存储的是RCFile文件。
Hive Parquet文件格式
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,Parquet最初是由Twitter和Cloudera合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目。它也是使用了列式存储的方式提升查询性能。
通过在 Hive CREATE TABLE 命令的末尾添加存储选项“STORED AS parquet“指定存储的是RCFile文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。