Hive系列文章
hive创建orc格式表不能像textfile格式一样直接load数据到表中,需要创建临时textfile表,然后通过insert into 或者insert overwrite到orc存储格式表中。
如果你直接load数据到orc格式表中,这个步骤可以成功,但是会发现select * from table limit 1;这个语句都会报错,也就是说直接load数据是不可行的。对于hive中orc格式表可以参见:大数据:Hive - ORC 文件存储格式
1)、创建表
需要创建临时表和数据表。
临时表
create table if not exists db.tmp
(
name string,
age int
)
partitioned by (dt string, hour string, msgtype string, action string)
row format delimited fields terminated by '\t';
数据表
create external table if not exists db.people
(
name string,
age int
)
partitioned by (dt string, hour string, msgtype string, action string)
row format delimited fields terminated by '\t'
stored as orc;
2)、 导入数据
需要先用load命令将数据导入textfile格式表,然后再通过insert into插入orc格式表。
(1) 导入数据到textfile
load data inpath 'hdfs://path' into table db.tmp partition(dt="2018-06-22",hour="00",msgtype="web", action="click");
(2)查询数据插入orc格式表
insert into db.people partition(dt="2018-06-22",hour="00",msgtype="web", action="click")
select name,age
from db.tmp where dt = "2018-06-22" and hour = "00"
and msgtype = "web" and action = "click";
关注公众号:Java大数据与数据仓库,学习大数据技术。
喜欢 (0)or分享 (0)