2016-09-08 23 views
1

私は以下のテーブルを1つ持っています。ハイブの複数の列を1つの列に結合する

Id v1 v2 v3 
A 01 03 23 
B 11 21 05 
C 02 10 24 
D 22 14 23 

ここで最初の列はidを持ち、3つの列に関連付けられています。だから、私はその3つの列を1つの単一の列に関連するidと組み合わせなければなりません。

たとえば、

id value 
A 01 
A 03 
A 23 
B 11 
B 21 
B 05 
. .. 
. .. 

だから、これをハイブにする必要がありますので、私に知らせてください。

+0

私は機能を爆発しようとしたが、それは動作していません。 –

答えて

3
insert into table result_table select Id, v1 as value from orig_table; 
insert into table result_table select Id, v2 as value from orig_table; 
insert into table result_table select Id, v3 as value from orig_table; 
select Id,value from result_table; 

または

select Id, value 
     from orig_table LATERAL VIEW explode(array(v1,v2,v3)) orig_table_alias AS value; 
+0

作品は...ありがとう –

0
select id, v1 
from table 
union all 
select id, v2 
from table 
union all 
select id, v3 
from table 
関連する問題