Как загрузить данные из первых двух таблиц улья в третью ниже? - PullRequest
0 голосов
/ 21 марта 2020

Ниже приведена упрощенная версия проблемы, с которой я сталкиваюсь

Допустим, у меня есть сотрудник и таблица отдела в Hive. Моя цель - загрузить данные из этих двух таблиц в третью ниже. Однако в 3-й таблице несколько фиктивных столбцов имеют нулевое значение и не будут заполняться данными из таблиц сотрудников или отделов. Можно ли по-прежнему загружать данные о сотруднике и отделе и просто установить для других полей значение NULL?

Таблица сотрудников (идентификатор, имя, фамилия, возраст, идентификатор отдела, зарплата)

1, Джон, Смит, 23,1,40000

2, Боб, Уилсон, 25,1,45000

3, Фред, Круг, 37,2,75000

4, Джереми, Фишер, 41,3,110000

Таблица отдела (идентификатор, имя)

1, Продажи

2 , IT

3, Маркетинг

Конечный результат (dummy_column0, employeeID, first_name, фамилия, возраст, зарплата, имя отдела, dummy_column1)

null, 1, Джон, Смит, 23,40000, Продажи, ноль

нуль, 2, Боб, Уилсон, 25,45000, Продажи, ноль

нуль, 3, Фред, Круг, 37, 75000, IT, null

null, 4, Jeremy, Fisher, 41,110000, Marketing, null

Вопрос задается схемой конечного результата, как мне загрузить оставшуюся часть ненулевые данные в 3-ю таблицу? Любая помощь приветствуется! Таблица конечных результатов уже существует, поэтому я не могу просто воссоздать ее с нуля

1 Ответ

0 голосов
/ 22 марта 2020

Да. Hive не заботится об именах столбцов. Это просто положение столбцов, которые наиболее важны. вам просто нужно структурировать запрос таким образом, чтобы пустые столбцы имели нулевые значения.

insert overwrite table tablename
select null, employeeID, first_name,last_name, age, salary, dept.deptName, null
from employee e join dept d on e.dept_id = d.dept_id;
...