2017-08-03 75 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