Bootstrap

hive修改表操作与array类型

1.表重命名

alter table old_table_name rename to new_table_name;

2.修改表属性值

ALTER TABLE table_name SET TBLPROPERTIES table_properties;
table_properties: (property_name = property_value, property_name = property_value, ... )

如: ALTER TABLE table_name SET TBLPROPERTIES("EXTERNAL"="TRUE"); 修改内外部表属性
如: ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment); 修改表注释

3.添加分区

ALTER TABLE tablename ADD PARTITION (month='201101');(新分区是空的没数据,需要手动添加或上传数据文件)

修改分区值:

ALTER TABLE tablename PARTITION (month='202005') RENAME TO PARTITION (month='201105');

删除分区:ALTER TABLE tablename DROP PARTITION (month='201105');

4.添加列

ALTER TABLE table_name ADD COLUMNS (v1 int, v2 string);

修改列名

ALTER TABLE test_change CHANGE v1 v1new int;

删除表

DROP TABLE tablename;

清空表

TRUNCATE TABLE tablename;

1.array类型:Hive 支持的数据类型很多,除了基本的: int 、 string 、 varchar 、 timestamp 等
还有一些复杂的数据类型如array

建表语句:create table myhive.test_array(name string, work_locations array<string>)
row format delimited fields terminated by '\t' COLLECTION ITEMS TERMINATED BY ',';

导入数据:load data local inpath '/home/wtk/data_for_array_type.txt' into table test_array;

常用 array 类型查询:
-- 查询所有数据
select * from myhive.test_array;


-- 查询 loction 数组中第二个元素
select name, work_locations[1] location from myhive.test_array;


-- 查询 location 数组中元素的个数
select name, size(work_locations) location from myhive.test_array;


-- 查询 location 数组中包含 tianjin 的信息
select * from myhive.test_array where array_contains(work_locations,'tianjin');

;