如何在不包含新列名和类型的情况下更改现有 Hive 表中的列注释?
Posted
技术标签:
【中文标题】如何在不包含新列名和类型的情况下更改现有 Hive 表中的列注释?【英文标题】:How can I change column comments in existing Hive table without including new column name and type? 【发布时间】:2015-03-23 16:17:23 【问题描述】:我想使用 hive 0.13 更改现有 hive 表上的列 cmets。这有效:
创建表测试(mycolumn int); alter table test change mycolumn mycolumn int comment 'hello';
但是如果不重复列的名称和类型,我找不到一种方法,这两者都与更改无关。例如:
alter table test change mycolumn comment 'hello';导致错误。
如果这是针对一列,那没什么大不了的,但我想对表中未注释的大量列执行此操作。我知道这可以通过一个简单地复制列名及其类型的脚本来完成,但如果有更简单的东西会很高兴。谢谢
【问题讨论】:
【参考方案1】:您可以使用 ALTER 命令执行此操作。
CREATE TABLE my_table
(id INT COMMENT 'id comment',
name STRING comment 'name comment');
-- change column comment as below.
ALTER TABLE my_table CHANGE id id INT COMMENT 'another comment';
-- see changed column
DESC EXTENDED my_table;
【讨论】:
【参考方案2】:ALTER TABLE test_change CHANGE a1 a1 INT COMMENT 'this is column a1';
【讨论】:
【参考方案3】:直接不支持编辑comment的列属性,反之是
alter table dev.travel change num2 clm_num1 int comment 'a new column added';
现在我想改变上面的一个让我们做;
alter table dev.tkt change clm_num1 num2 int comment 'a new column added';
alter table dev.tkt change num2 clm_num1 int comment 'a new column added with new comment';
【讨论】:
现在试试这个人以上是关于如何在不包含新列名和类型的情况下更改现有 Hive 表中的列注释?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不更改现有数据位置的情况下添加新的 SQL Server 分区范围来容纳未来的数据?