我们可以在配置单元的一个alter语句中删除多个列吗。像这样的
Alter table t drop column a1,a2
我必须下降约7列,所以我们正在寻找一个优雅的方法
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)
1条答案
按热度按时间kcwpcxri1#
我没有在Hive里工作的经验,但我的发现可能会对你有所帮助!。
似乎,我们不能使用命令altertabletablename dropcolname直接从表中删除列;
因此,请在replace columns子句中提供所有希望成为表的一部分的列。例如,emp表包含以下列id、name、dept、email、address、salary,如果要删除address和salary列,则查询如下
注意:但是上面的语句只能更改表的模式,不能更改数据。
就像您应该在replace子句中提到所有列(您希望保留在表中)的方式一样。
此处引用(&H)