Как эффективно создать несколько строк из одной в Impala - PullRequest
0 голосов
/ 11 июля 2019

У меня есть таблица1 с этим форматом:

UT | temp_m1  | temp_m2  | temp_m3  | temp_m4  | air_m1  | air_m2  | air_m3  | air_m4  |    

Я хотел бы создать таблицу2 в следующем формате:

UT | location  |   temp  | air

Который будет иметь 4 строки для каждой строки таблицы 1.

Простой способ добиться этого:

create table2 as
Select ut,'m1' as location, temp_m1 as temp, air_m1 as air 
from table1
union all 
Select ut,'m2' as location, temp_m2 as temp, air_m2 as air 
from table1
union all 
Select ut,'m3' as location, temp_m3 as temp, air_m3 as air 
from table1
union all 
Select ut,'m4' as location, temp_m4 as temp, air_m4 as air 
from table1;

Но, глядя на диспетчер задач, кажется, что мы должны прочитать одну и ту же таблицу 4 раза, а затем объединить результаты.

Должно быть проще прочитать его один раз, а затем разбить на «цель», но я не могу найти способ.

...