我们可以在Hive中的单个Alter语句中删除多个列。
像
这样的东西Alter table t drop column a1,a2
我必须减少7列,所以正在寻找一种优雅的方法
答案 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子句中提到所有列(你想要保留在表中)的方式。