2016-09-06 6 views
1

У меня есть таблица в энцефалопатии, которая выглядит как этоткак преобразовать столбцы в строки в энцефалопатией

cust_1,month_1, f1,f2,f3 
cust_1,month_2, f2,f3,f4 
cust_2,month_1, f1,f5,f4 

Я хотел бы, чтобы преобразовать его в следующем формате

cust_1,month_1, f1 
cust_1,month_1, f2 
cust_1,month_1, f3 

....

Как это возможно в HIVE?

+0

Это довольно простой материал. У куста нет плюсов/неволей, поэтому просто выберите cust, month, f1 union all select cust, month, f2 ... '. – Andrew

+0

@Andrew 'UNION ALL' для поворота данных в Улье неэффективно. Если вы хотите идти дольше, вы создаете пары ключевых значений и взорваетесь. Он изложен в нижеследующем ответе. – gobrewers14

+0

Возможный дубликат функции [Hive - Unpivot в улье] (http://stackoverflow.com/questions/32621970/hive-unpivot-functionality-in-hive) – gobrewers14

ответ

0

вы можете использовать этот SQL:

select col1, col2, value 
    from orig_table lateral view explode(array(col3,col4,col5)) orig_table_alias as value; 
Смежные вопросы