插入配置单元表时转换值

wswtfjt7  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(348)

我已经创建了一个名为emp\u bucket的bucketed表,它分为4个buckets,聚集在salary列上。表格结构如下:

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)

我还有一个staging表,从中可以将数据插入到上面的bucked表中。以下是暂存表中的示例数据:

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

我的要求是将工资高于10000的员工的数据加载到带方框的表中,加载时我必须将“顾问”角色转换为bigdata顾问角色。
我知道如何使用select命令将数据插入到我的bucked表中,但是需要一些指导如何在插入时将上面role列中的consultant值更改为bigdataconsultant。
谢谢你的帮助

cgvd09ve

cgvd09ve1#

基于你的 insert ,你只需要在 role 你生活的一部分 select :

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
;

相关问题