[Hive]表属性操作
2019-07-26 本文已影响0人
帅可儿妞
业务的调整,我不得不去修改表的一些信息
- Hive表重命名
ALTER TABLE <table-old-name> RENAME TO <table-new-name>;
- 修改列名、类型、列的位置、注释
ALTER TABLE <table-name> CHANGE [CLOUMN] <col-old-name> <col-new-name> <column-type> # 列名、列类型 [CONMMENT <col-conmment>] # 注释 [FIRST|AFTER column_name]; # 位置
- 增加、更新列
ALTER TABLE <table-name> ADD|REPLACE COLUMNS (<col-name> <data-type> [CONMMENT <col-comment>], ...);
- 增加表的属性
ALTER TABLE <table-name> SET TBLPEOPERTIES <table-properties>;
- 用户可以使用这个语句增加表属性,table_properties的结构为
(<property-name>=<property-value>,<property-name>=<property-value>, ...)
,目前last_modified_time
(最后修改时间),last_modified_user
(做最后修改的用户)是由Hive自动管理的。用户可以向列中添加自己的属性,然后使用DISCRIBE EXTEBDED TABLE
来获取这些信息。
- 用户可以使用这个语句增加表属性,table_properties的结构为
- 增加SerDE属性
ALTER TABLE table_name SET SERDE serde_class_name [WITH SERDEPROPERTIES serde_properties];
创建 dual
create table dual(id int);
insert into dual select 1 from <any-hibe-table-has-content> limit 1;
hive 解析数组
select ss.col
from (
select split(
regexp_replace(
regexp_extract('[{"bssid":"6C:59:40:21:05:C4","ssid":"MERCURY_05C4"},{"bssid":"AC:9C:E4:04:EE:52","appid":"10003","ssid":"and-Business"}]','^\\[(.+)\\]$',1),
'\\}\\,\\{',
'\\}\\|\\|\\{'
),
'\\|\\|'
) as str
from dual
) pp
lateral view explode(pp.str) ss as col;