in配置单元中删除多个列

t98cgbkg  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(252)

我们可以在配置单元的一个alter语句中删除多个列吗。
像这样的

Alter table t drop column a1,a2

我必须下降约7列,所以我们正在寻找一个优雅的方法

kcwpcxri

kcwpcxri1#

我没有在Hive里工作的经验,但我的发现可能会对你有所帮助!。
似乎,我们不能使用命令altertabletablename dropcolname直接从表中删除列;
因此,请在replace columns子句中提供所有希望成为表的一部分的列。例如,emp表包含以下列id、name、dept、email、address、salary,如果要删除address和salary列,则查询如下

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

注意:但是上面的语句只能更改表的模式,不能更改数据。
就像您应该在replace子句中提到所有列(您希望保留在表中)的方式一样。
此处引用(&H)

相关问题