📅  最后修改于: 2020-11-30 04:24:35             🧑  作者: Mango
本章说明如何更改表的属性,例如更改表名称,更改列名称,添加列以及删除或替换列。
您可以使用ALTER TABLE语句更改Hive中的表。
该语句根据我们希望在表中修改哪些属性而采用以下任何语法。
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
下面介绍了一些方案。
以下查询将表从employee重命名为emp 。
./hcat –e "ALTER TABLE employee RENAME TO emp;"
下表包含employee表的字段,并显示要更改的字段(粗体)。
Field Name | Convert from Data Type | Change Field Name | Convert to Data Type |
---|---|---|---|
eid | int | eid | int |
name | String | ename | String |
salary | Float | salary | Double |
designation | String | designation | String |
以下查询使用上述数据重命名列名称和列数据类型-
./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"
以下查询将一个名为dept的列添加到employee表。
./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"
以下查询从employee表中删除所有列,并将其替换为emp和name列-
./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"
本章介绍如何在HCatalog中删除表。从metastore中删除表时,它会删除表/列数据及其元数据。它可以是普通表(存储在metastore中)或外部表(存储在本地文件系统中);不论其类型如何,HCatalog均以相同的方式对待这两种药物。
语法如下-
DROP TABLE [IF EXISTS] table_name;
以下查询删除一个名为employee的表-
./hcat –e "DROP TABLE IF EXISTS employee;"
成功执行查询后,您将看到以下响应-
OK
Time taken: 5.3 seconds