hive中分区表的使用:
1.
创建一个分区表,以
ds
为分区列:
create table invites (id int, name
string) partitioned by (ds string) row format delimited fields
terminated by '\t' stored as textfile;
2.
将数据添加到时间为
2012-10-12
这个分区中:
load data local inpath
'/home/hadoop/Desktop/data.txt' overwrite into table invites
partition (ds='2012-10-12');
3.
将数据添加到时间为
2012-10-20
这个分区中:
load data local inpath
'/home/hadoop/Desktop/data.txt' overwrite into table invites
partition (ds='2012-10-20');
4.
从一个分区中查询数据:
select * from invites where ds
='2012-10-12';
5.
往一个分区表的某一个分区中添加数据:
insert overwrite table invites
partition (ds='2012-10-12') select id,max(name) from test group by
id;
可以查看分区的具体情况,使用命令:
hadoop fs -ls
/home/hadoop.hive/warehouse/invites
如果想在
eslipse
下面看效果,也是需要开启
hadoop
的,
start-all.sh
。
hive
中桶的使用:
1.
创建带桶的
table
:
create table bucketed_user(id int,name
string) clustered by (id) sorted by(name) into 4 buckets row format
delimited fields terminated by '\t' stored as textfile;
2.
强制多个
reduce
进行输出:
set hive.enforce.bucketing=true;
3.
往表中插入数据:
insert overwrite table bucketed_user
select * from test;
4.
查看表的结构,会发现当前表下有四个文件:
dfs -ls
/home/hadoop/hive/warehouse/bucketed_user;
5.
读取数据,看没一个文件的数据:
dfs -cat
/home/hadoop/hive/warehouse/bucketed_user/000000_0;
桶使用
hash
来实现,所以每个文件拥有的数据的个数都有可能不相等。
6.
对桶中的数据进行采样:
select * from bucketed_user
tablesample(bucket 1 out of 4 on name);
桶的个数从
1
开始计数,前面的查询从
4
个桶中的第一个桶获取数据。其实就是四分之一。
7.
查询一半返回的桶数:
select * from bucketed_user
tablesample(bucket 1 out of 2 on name);
分享到:
相关推荐
hive表修改分区数据
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
详细描述了hive分桶表,分区表的创建,附带详细建表语句,包含一级静态分区,二级静态分区,一级动态分区,二级动态分区,分区的查询,删除,添加,数据的导入
BLOG_如何将一个普通表转换为分区表.pdfBLOG_如何将一个普通表转换为分区表.pdf
Hive分区表和分桶表,进阶篇
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
Hive分区表 Hive分区表对应的是HDFS上独立的文件夹,该文件夹存放的是该分区的所有数据,其实分区就是分目录。Hive通过分区把一个大的数据集根据业务需要分割成小的数据集,在查询时能够通过where关键词选择指定分区...
1 Hive 概念与连接使用: 2 2 Hive支持的数据类型: 2 2.1原子数据类型: 2 2.2复杂数据类型: 2 2.3 Hive类型转换: 3 3 Hive创建/删除数据库 3 3.1创建数据库: 3 3.2 删除数据库: 3 4 Hive 表相关语句 3 4.1 Hive ...
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
NULL 博文链接:https://jonas-wang.iteye.com/blog/1927709
下面的我们创建一张雇员表作为测试:PARTITIONED BY (deptno INT) -- 按照部门编号进行分区ROW FORMAT DELIMITED F
适用人群:hive学习童鞋,hive方面从业人员 从hive的搭建 到 hive的分区表/内部表/外部表/分桶等sql讲解
下面的我们创建一张雇员表作为测试:PARTITIONED BY (deptno INT) -- 按照部门编号进行分区ROW FORMAT DELIMITED F
大数据MR原理启动hive设置队列,对已经存在hdfs的有分区有表结构和数据信息的表,进行查询表.查询表分区,查询表结构的完整流程如下.学无长幼.
14.Hive中分区表的创建及使用 15.Hive中数据导入的6种方式及其应用场景 16.Hive中数据导出的4种方式及表的导入导出 17.Hive中HQL的基本语法(一) 18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、...
分区表就是根据指定字段的值进行分类、分组,字段值相同的分为一类然后存储在一个单独的HDFS文件中,多个类就存储在多个文件中。原本存储在一个文件中的数据现在存储在多个文件中,查询数据时只需要知道数据在哪个...
使用美国疫情数据创建分区表 疫情数据实现静态和动态加载数据到分区表 自己构建疫情数据实现多重分区表 使用美国疫情数据实现桶表 修改mysql数据库支持中文 location用于指定数据库在HDFS存储位置。 不使用location...
hive2.1.1orc格式读取报数组越界错误,替换jar包。hive-exec-2.1.1-cdh6.3.2.jar、hive-orc-2.1.1-cdh6.3.2.jar。分发各个服务器即可。
第6章:Hive性能优化及Hive3新特性课程学习目标掌握Hive中分区表及分桶表的设计及优化实现了解Hive中索引的设计及应用场景掌握Hive中文件格式与数据
bdp2hive项目介绍一、概述项目主要是集成生成sqoop脚本和创建hive分区表组件。生成sqoop脚本组件主要通过传递的数据库信息查询数据库获取表字段与数据集之间的对照关系SQL语句,通过模板拼接成sqoop脚本,上传服务器...