插入 HIVE 时转换值 table

Convert value while inserting into HIVE table

我创建了名为 emp_bucket 的分桶 table 到聚集在工资列上的 4 个桶中。 table的结构如下:

hive> describe Consultant_Table_Bucket;
OK
id                      int                                         
age                     int                                         
gender                  string                                      
role                    string                                      
salary                  double                                      
Time taken: 0.069 seconds, Fetched: 5 row(s)

我还有一个分段 table,我可以从那里将数据插入到上面的分桶 table 中。以下是暂存中的示例数据 table:

id      age     Gender   role         salary
-----------------------------------------------------
938     38      F       consultant      55038.0
939     26      F       student 33319.0
941     20      M       student 97229.0
942     48      F       consultant       78209.0
943     22      M       consultant 77841.0

我的要求是将薪水大于 10,000 的员工的数据加载到分桶 table 中,加载时我必须转换 "consultant" 角色大数据顾问角色。

我知道如何使用 select 命令将数据插入到我的存储桶 table 中,但需要一些指导如何使角色中的 consultant 值上面的栏目可以在插入的时候改成大数据顾问

感谢任何帮助

根据您的 insert,您只需要处理 selectrole 部分:

INSERT into TABLE bucketed_user PARTITION (salary)
select
    id
  , age
  , gender
  , if(role='consultant', 'BigData consultant', role) as role
  , salary
FROM
  stage_table
where
  salary > 10000
;