刚开始玩HIVE外部表可能会遇到的小陷阱。
只要我们牢记外部表也是一种表就可以,普通表有分区,外部表也是有分区的。所以如果是基于分区表创建的外部表一定要对外部表执行ALTER TABLE table_name ADD PARTITION。否则是根本访问不到数据的。
例子应该会更直观:
原始的表:
hive> desc shaka_test_external;
OK
id bigint
gender string(分区字段)
|
记录:
hive> select * from shaka_test_external;
OK
0 0
1 1
2 1 |
基于上表的数据创建外部表:
create external table ext_shaka_test_external
like shaka_test_external
location 'hdfs://hdpnn:9000/group/hive/shaka_test_external'; |
如果此时直接访问数据,那么是没有记录的:
hive> show partitions ext_shaka_test_external;
OK
Time taken: 0.098 seconds
hive> select * from ext_shaka_test_external;
OK
Time taken: 0.229 seconds
|
陷阱来了,添加分区后就能访问了:
hive> alter table ext_shaka_test_external add partition (gender='0');
OK
Time taken: 0.18 seconds
hive> alter table ext_shaka_test_external add partition (gender='1');
OK
Time taken: 1.305 seconds
hive> select * from ext_shaka_test_external;
OK
0 0
1 1
2 1
Time taken: 0.251 seconds
hive> select * from ext_shaka_test_external where gender = '0';
OK
0 0
Time taken: 0.175 seconds |
分享到:
相关推荐
hive表修改分区数据
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
BLOG_如何将一个普通表转换为分区表.pdfBLOG_如何将一个普通表转换为分区表.pdf
详细描述了hive分桶表,分区表的创建,附带详细建表语句,包含一级静态分区,二级静态分区,一级动态分区,二级动态分区,分区的查询,删除,添加,数据的导入
Hive分区表 Hive分区表对应的是HDFS上独立的文件夹,该文件夹存放的是该分区的所有数据,其实分区就是分目录。Hive通过分区把一个大的数据集根据业务需要分割成小的数据集,在查询时能够通过where关键词选择指定分区...
Hive分区表和分桶表,进阶篇
NULL 博文链接:https://jonas-wang.iteye.com/blog/1927709
一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
Hive表生成工具,Hive表生成工具Hive表生成工具
大数据MR原理启动hive设置队列,对已经存在hdfs的有分区有表结构和数据信息的表,进行查询表.查询表分区,查询表结构的完整流程如下.学无长幼.
支持hive 源数据、表结构导出
分区表就是根据指定字段的值进行分类、分组,字段值相同的分为一类然后存储在一个单独的HDFS文件中,多个类就存储在多个文件中。原本存储在一个文件中的数据现在存储在多个文件中,查询数据时只需要知道数据在哪个...
4 Hive 表相关语句 3 4.1 Hive 建表: 3 4.1.1使用LIKE关键字创建一个与已有表模式相同的新表: 4 4.2 Hive 修改表 4 4.2.1 Hive 新增一个字段: 4 4.2.2 Hive 修改字段名/字段类型/字段位置/字段注释: 4 4.2.3 ...
hive数据分区时分区字段不可为中文。
hive分区表生成组件主要是通过获取数据集及数据集item的code,数据集code作为hive表名,数据集item code作为hive分区表字段,同时加入相关字段,形成hive表的基本结构。项目结构─src ├─main │ ├─java │ │ └...
掌握HQL创建数据库,掌握HQL创建内部表、外部表、分区表 使用有location 和无location创建HIVE数据库,库名与自己的名字相关; 在数据集目录中选取2个数据文件内部表创建表,选取2个数据文件创建外部表。 使用美国...
适用人群:hive学习童鞋,hive方面从业人员 从hive的搭建 到 hive的分区表/内部表/外部表/分桶等sql讲解