在配置单元中一次性删除多个列
Posted
技术标签:
【中文标题】在配置单元中一次性删除多个列【英文标题】:Dropping multiple columns in a single go in hive 【发布时间】:2018-01-05 12:05:45 【问题描述】:我们能否在 Hive 的单个 Alter 语句中删除多个列。
有点像
Alter table t drop column a1,a2
我必须删除大约 7 列,所以正在寻找一种优雅的方法
【问题讨论】:
在此更新您目前为止的尝试? 【参考方案1】:我没有蜂巢的经验,但我的发现可能对你有帮助!。
看来,我们不能使用命令直接从表中删除列 ALTER TABLE table_name drop col_name;
因此,请在替换列子句中提供您希望成为表一部分的所有列。例如,emp 表包含以下列 Id、Name、Dept、Email、Address、Salary,如果我们要删除 Address 和 Salary 列,那么查询将如下所示
ALTER TABLE emp REPLACE COLUMNS( Id int, Name string, Dept string, Email string);
注意:但是上面的语句只能改变表的架构,不能改变数据。
就像您应该在 REPLACE 子句中提及所有列(您想保留在表中)的方式一样。
引用自here & here
【讨论】:
以上是关于在配置单元中一次性删除多个列的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Hive 中使用 regexp_replace() 一次删除多个字符?