Hive文件存储的格式包括以下几类:
- TEXTFILE
- SEQUENCEFILE
- RCFILE
- ORCFILE
-
Parquet
TEXTFILE为默认格式,建表时不指定的话,就会默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理;
SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中, 然后再从表中用insert导入SequenceFile,RCFile,ORCFile表中。
创建一张testfile_table表,格式为textfile。
create table if not exists testfile_table( site string, url string, pv bigint, label string) row format delimited fields terminated by '\t' stored as textfile;
load data local inpath '/app/weibo.txt' overwrite into table textfile_table;
一、TEXTFILE
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压)。
但使用这种方式,Hive不会对数据进行块切分,从而无法对数据进行并行操作。
示例:
set hive.exec.compress.output=true;
set mapred.output.compress=tru