在配置单元中创建和更新新列

时间:2017-08-01 12:54:24

标签: sql hadoop hive

我是SQL和Hive的新手。我在hive中有一个表,我需要添加2列。一个是“row_id”,另一个是“cto_id”。我使用hive函数和一个名为“cto_id”的新列添加了行id。

我想更新“cto_id”列中的值,例如它包含的值如“CTO1101”+ row_id

我该怎么办?以下是我的代码。

-- assigning row number to each record in mu_temp_trials table
select *, row_number() over() as row_id from mu_temp_trials;

--adding new column for primary key in mu_temp_trials
alter table mu_temp_trials add columns(cto_id string);
//update mu_temp_trials set cto_id = "CTO_1101"+row_id; - I want to write this code in hive

1 个答案:

答案 0 :(得分:0)

希望这有帮助!

#let's say table mu_temp_trials has two columns - col1 & col2    
ALTER TABLE mu_temp_trials ADD COLUMNS(cto_id STRING, row_id STRING);


INSERT OVERWRITE TABLE mu_temp_trials
SELECT  a.col1, a.col2, concat_ws('','CTO1101',cast(a.row_id as string)) AS cto_id, cast(a.row_id as string) AS row_id
FROM (SELECT  col1, col2, row_number() over() AS row_id FROM mu_temp_trials) a;


如果它解决了您的问题,请不要忘记告诉我们:)