HIVE 第六章 表分类

Posted 麦田里的守望者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIVE 第六章 表分类相关的知识,希望对你有一定的参考价值。

公告:更新任在持续,更多精彩内容敬请关注!


当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 HIVE 第六章 表分类 HIVE 第六章 表分类

Hive 表分类
 CATEGORY

        HIVE的表按类型 分为 管理表、外部表、分区表。管理表:前面章节案例中所创建的表都称为管理表,有时候也称为内部表。因为这种表hive会控制数据的生命周期(在删除表的同时也会删除dhfs上的文本数据)因此管理表不方便和其他工作共享数据外部表: 和管理表比较外部表在创建的时候多一个中external关键字告诉Hive这是外部表,而后面的location则是告诉hive数据位于哪个位置或者路径下。因为是外部表hive并非完全拥有这些数据,因此在删除外部表的时候并不会删除location参数指定路径的数据。分区表: 无论外部表还是管理表都可以在创建的时候指定分区,对于这种指定分区的表称为分区表。数据库分区的概念已经纯在很久,其可以有多种形式,但是通常是使用分区来水平分散压力,将数据从物理上转移和使用最频繁的用户更接近的地方,以及实现其他目的。


> > > >

创建外部表

create external table if not exists t_user(   name string ,   salary float ,   subordinates array<string> ,   deductions map<string,float> ,   address struct<country:string,state:string>  )  row format delimited  fields terminated by ','  collection items terminated by '|'  map keys terminated by '>'  lines terminated by '\n'  stored as textfile  location '/hive/database/baizhi.db/t_user'    tblproperties ('creator'='jiangzz')


> > > >

创建分区表

 把上例中的信息按照country,state属性分区

create external table if not exists t_user(    name string comment 'this is name' ,    salary float comment 'salary of user' ,    subordinates array < string > comment 'names of  suordinates' ,    deductions map< string , float > comment 'names>percentage'    )comment 'user table'      partitioned by (country string ,state string )     row format delimited     fields terminated by ','    collection items terminated by '|'    map keys terminated by '>'     lines terminated by '\n'    stored as textfile    location '/hive/database/baizhi.db/t_user'      tblproperties ( 'creator' = 'jiangzz' )
1
查看分区
hive> show partitions t_user; OK Time taken: 0.096 seconds
2
添加分区

alter table t_user add if not exists partition (country='china',state='beijing') location 'hive/database/baizhi.db/t_user/country=china/state=beijing' partition (country='china',state='shanghai') location 'hive/database/baizhi.db/t_user/country=china/state=beijing';

HIVE 第六章 表分类HIVE 第六章 表分类


注意一般情况添加分区不给管理表添加因为管理表在删除分区的时候会将数据删除,所以一般在实际开发中使用外部表的使用场景是比较多的。


3
修改分区位置信息

alter table t_user partition (country='china',state='beijing') set location

 'hdfs://mycluster/hive/database/baizhi.db/t_user/country=china/state=beijing';

HIVE 第六章 表分类HIVE 第六章 表分类


注意localtion的值必须是absolute路径。


4
删除分区

alter table t_user drop partition(country='china',state='beijing');

HIVE 第六章 表分类HIVE 第六章 表分类


本期内容暂时更新到此,更多精彩内容请持续关注jiangzz_wy公众账号,如有任何疑问也可以添加小编jiangzz_wx微信。

添加关注
HIVE 第六章 表分类

以上是关于HIVE 第六章 表分类的主要内容,如果未能解决你的问题,请参考以下文章

第六章.解决大问题

数据结构:第六章学习小结

(计算机组成原理)第六章总线-第一节:总线概述1(概念,分类和系统总线的结构)

(王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵邻接表十字链表和邻接多重表)

第六章总结

第六章---机器学习与数据建模