📜  HCatalog-更改表

📅  最后修改于: 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表中删除所有列,并将其替换为empname列-

./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