在配置单元中一次性删除多个列

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

【讨论】:

以上是关于在配置单元中一次性删除多个列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWK 中一次删除多个列和字段分隔符?

如何在 Hive 中使用 regexp_replace() 一次删除多个字符?

在excel中如何查询一个字段对应的多个字段的内容

使用VBA在Excel填充单元格中插入多个图像,但保持宽高比

一次调用多个 deleteRowsAtIndexPaths

excel如何实现删除整列的同时不删除标题