Hive往分桶表表中导入数据
Posted 动若脱兔--
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive往分桶表表中导入数据相关的知识,希望对你有一定的参考价值。
1 创建分桶表
第一步要开启分桶否则导入数据会报错
set hive.enforce.bucketing = true
create table stu_buck(id int, name string)
clustered by(id)
into 4 buckets
row format delimited fields terminated by '\\t';
2 创建临时中间表tp(将建表语句的分桶操作去掉即可)
create table tp(id int, name string)
row format delimited fields terminated by '\\t';
3 将数据导入到中间表中
load data local inpath "/temp/student1/student.txt" into table tp;
4 查询tp表中的数据插入分桶表中
insert overwrite table stu_buck select * from tp;
5 登录浏览器查看分桶目录
可以看到分了4个桶,所以显示的是4个文件,我目前是用的Hadoop是2.x,hive也是2.x,如果使用3.x的话应该就不需要使用中间表就可以向hive中导入数据了。
6 分桶表操作注意事项:
(1)reduce 的个数设置为-1,让 Job 自行决定需要用多少个 reduce 或者将 reduce 的个
数设置为大于等于分桶表的桶数
(2)从 hdfs 中 load 数据到分桶表中,避免本地文件找不到问题
(3)不要使用本地模式
以上是关于Hive往分桶表表中导入数据的主要内容,如果未能解决你的问题,请参考以下文章