在一个单元中删除多个列

时间:2018-01-05 12:05:46

标签: sql hive hiveql rdbms

我们可以在Hive中的单个Alter语句中删除多个列。

这样的东西
Alter table t drop column a1,a2 

我必须减少7列,所以正在寻找一种优雅的方法

1 个答案:

答案 0 :(得分:1)

我没有蜂巢的经验,但我的发现可能对你有所帮助!

看来,我们不能使用命令直接从表中删除列ALTER TABLE table_name drop col_name;

因此,在replace columns子句中提供您希望成为表的一部分的所有列。例如,emp表包含以下列Id,Name,Dept,Email,Address,Salary,如果我们要删除Address和Salary列,那么查询将如下所示

ALTER TABLE emp REPLACE COLUMNS( Id int, Name string, Dept string, Email string);

注意:但是,Above语句只能更改表的架构,而不能更改数据。

就像你应该在REPLACE子句中提到所有列(你想要保留在表中)的方式。

here& here