脚本宝典收集整理的这篇文章主要介绍了Hive数据仓库分桶表分区未显示分区的数据,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是博主运行成功步骤
create database 数据库名;
use 数据库名;
分桶就是Mapreduce中的分区
set hive.enforce.bucketing=true;
set maPReduce.job.reduces=n;
n:根据题目要求设置个数
create table 表名 (c_id string,c_name string,t_id string) clustered by(c_id) into n buckets row format delimITed fields terminated by 't';
//创建一个表以某个字段分为n桶,表的内容以t分割
桶表的数据加载,由于通标的数据加载通过hDFs dfs -put文件或者通过load data均不好使,只 能通过insert overwrite 创建普通表,并通过insert overwriter的方式将普通表的数据通过查询的方式加载到桶表当中 去.
create table 表名_re (c_id string,c_name string,t_id string) row format delimited fields terminated by 't';
方式一: load data local inpath '本地路径(Linux)' into table 表名_re;
方式二: load data inpath ' 集群路径(hdfs)' into table 表名_re;
博主用的第二种方式
insert overwrite table 表名 select * From 表名_re cluster by(c_id);
//将查询普通表的结果加载到分桶表
在这里我们看一看见1 2 3的size都是45B.证明分区成功
如出现以下错误:
或者size为0
方法一:
暴力解法:
删除数据库,从创建数据库开始在执行一边
drop database 数据库名 casCADe;
//强制删除数据库,包含数据库下面的表一起删除
drop database 数据库名;
//删除一个空数据库,如果数据库下面有数据表,那么就会报错
方法二:
删除普通表,重复4-6操作
drop table 表名;
//删除外部表,数据仓库还会显示原表,删除内部表删除所有
如果有其他错误或者解法欢迎评论
以上是脚本宝典为你收集整理的Hive数据仓库分桶表分区未显示分区的数据全部内容,希望文章能够帮你解决Hive数据仓库分桶表分区未显示分区的数据所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。