hive中orc格式表的数据导入

2020年4月12日 4877点热度 0人点赞 0条评论

Hive系列文章

  1. Hive表的基本操作
  2. Hive中的集合数据类型
  3. Hive动态分区详解
  4. hive中orc格式表的数据导入
  5. Java通过jdbc连接hive
  6. 通过HiveServer2访问Hive
  7. SpringBoot连接Hive实现自助取数
  8. hive关联hbase表
  9. Hive udf 使用方法
  10. Hive基于UDF进行文本分词
  11. Hive窗口函数row number的用法
  12. 数据仓库之拉链表

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大数据与数据仓库,学习大数据技术。

ikeguang

这个人很懒,什么都没留下

文章评论