如何删除蜂巢列?
Posted
技术标签:
【中文标题】如何删除蜂巢列?【英文标题】:How to drop hive column? 【发布时间】:2016-11-01 12:23:16 【问题描述】:我在 Hive 表中有两列 Id
和 Name
,我想删除 Name
列。我使用了以下命令:
ALTER TABLE TableName REPLACE COLUMNS(id string);
结果是Name
列值被分配给Id
列。
如何删除表的特定列,Hive 中是否还有其他命令可以实现我的目标?
【问题讨论】:
same Q你可以从这个问答中得到帮助 【参考方案1】:除了问题的现有答案:Alter hive table add or drop column
根据 Hive documentation,
REPLACE COLUMNS
删除所有现有列并添加新的列集。
REPLACE COLUMNS
也可用于删除列。例如,ALTER TABLE test_change REPLACE COLUMNS (a int, b int);
将从test_change
的架构中删除列c
。
【讨论】:
【参考方案2】:您使用的查询是正确的。但这只会修改模式,即元存储。这不会修改数据方面的任何内容。
因此,在删除列之前,您应该确保拥有正确的数据文件。
在您的情况下,数据文件不应包含名称值。
如果您不想修改文件,请创建另一个表,其中仅包含您需要的特定列。
Create table tablename as select id from already_existing_table
如果这有帮助,请告诉我。
【讨论】:
以上是关于如何删除蜂巢列?的主要内容,如果未能解决你的问题,请参考以下文章