Преобразовать значение при вставке в таблицу HIVE - PullRequest
0 голосов
/ 12 июня 2018

Я создал таблицу с интервалом emp_bucket в 4 сегмента, сгруппированных по столбцу зарплаты.Структура таблицы выглядит следующим образом:

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)

У меня также есть промежуточная таблица, из которой я могу вставить данные в вышеприведенную таблицу с интервалами.Ниже приведены примерные данные в промежуточной таблице:

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, и при загрузке я должен конвертировать «консультант» роль до консультант BigData роль.

Я знаю, как вставлять данные в мою таблицу с помощью команды select, но мне нужно некоторое руководство, как можно изменить значение консультант в столбце роли выше на Консультант BigData при вставке.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 12 июня 2018

Исходя из вашего 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
;
...