我是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
答案 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;
如果它解决了您的问题,请不要忘记告诉我们:)