Hive常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive常用命令相关的知识,希望对你有一定的参考价值。
参考技术A 参数说明:EXTERNAL:创建外部表,在建表的同时可以指定源数据的路径(LOCATION),创建内部表时,会将数据移动到数据仓库指向的路径,若创建外部表不会有任何改变。在删除表时,内部表的元数据和源数据都会被删除,外部表不会删除源数据。
COMMENT:为表和列增加注释
PARTITIONED BY:创建分区表,
——PARTITIONED BY(dt STRING, country STRING)
CLUSTERED BY:创建分桶表
SORTED BY:创建排序后分桶表(不常用)
——CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED:是用来设置创建的表在加载数据的时候,支持的列分隔符。Hive默认的分隔符是\001,属于不可见字符,这个字符在vi里是^A
—— ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001';
STORED AS:指定存储文件类型 sequencefile (二进制序列文件)、textfile(文本)、rcfile(列式存储格式文件)、ORC
如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。
如果数据需要压缩,使用 STORED AS SEQUENCEFILE。
LOCATION:指定表在 hdfs 上的存储位置
注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f hdfspath)
注意:INPATH后面的文件路径不能和hive表路径在hdfs上一致,最好是两个不同的文件路径,在加载过程中,源路径下的文件会被移动到hive表所在路径下,如果一致,会找不到文件错误;
Hive支持内置和自定义开发的文件格式。以下是Hive内置的一些格式:
默认是文本格式.
textfile 存储空间消耗比较大,并且压缩的text 无法分割和合并查询的效率最低,可以直接存储,加载数据的速度最高.
sequencefile 存储空间消耗最大,压缩的文件可以分割和合并查询效率高,需要通过text文件转化来加载.
rcfile 存储空间最小,查询的效率最高 ,需要通过text文件转化来加载,加载的速度最低.
相比传统的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐(注:列式存储不是万能高效的,很多场景下行式存储仍更加高效),尤其是在数据列(column)数很多,但每次操作仅针对若干列的情景,列式存储引擎的性价比更高。
以上是关于Hive常用命令的主要内容,如果未能解决你的问题,请参考以下文章