2017-08-03 48 views
1

我有一个包含多列的表。现在我想添加另一个应该有“CTO1101”值的列+ row_id row_id是表中现有的列。添加新列与从蜂巢现有列连接的值

使用下面的2个命令给出错误。

alter table d_study add columns(cto_id string); 

update d_study 
    set cto_id = "CTO1101" + row_id; 
+0

不会发生。 Hive UPDATE当前仅支持硬编码值。您可以在您的表格上生成视图,在添加附加列后创建新表格或覆盖当前表格。 –

+0

@DuduMarkovitz嘿,你的方法为我工作。谢谢。 – Vaibhav

+0

@vaibhav这是一个重复的问题 - https://stackoverflow.com/questions/45438453/creating-and-updating-a-new-column-in-hive – Prem

回答

-1

alter table d_study add column cto_id string;
update d_study set cto_id="CTO1101"||row_id;

语法取决于所述DB系统以及数据类型上所以蜂房只是搜索的级联opperator(“||”或预定义的函数)

+0

更新时出现以下错误:ParseException行1:38在'|'处丢失EOF 'CTO1101'' – Vaibhav

+0

update d_study set cto_id = concat('CTO1101',row_id);然后尝试连接功能。 – Alexandru

+0

是的,也试过。出现此错误 - 尝试使用不支持这些操作的事务管理器进行更新或删除。 我试着对concat(“CTO1101”+ row_id)和concat(“CTO1101”+ str(row_id)) – Vaibhav