2017-03-07 12 views
0

例:列A1とA2を持つ表T1があります。 A1は整数型のデータを持ち、A2は配列型の構造体を持っています。今A2には列C1があります。 C1の特定の値に対応するA1の値を見つけるためのクエリの構文は何ですか?Hiveで配列構造体を分解する構文が必要

+0

問題は何を試してみましたが、何で追加してください? –

答えて

0
select distinct 
     A1 

from T1 lateral view explode(A2) a2 as s 

where a2.s.C1 = {myvalue} 

デモ

with T1 as 
     (
         select 1 as A1,array(named_struct('c1',7,'c2',1),named_struct('c1',7,'c2',8),named_struct('c1',5,'c2',2)) as A2 
      union all select 2 as A1,array(named_struct('c1',6,'c2',7),named_struct('c1',9,'c2',9))        as A2 
      union all select 3 as A1,array(named_struct('c1',7,'c2',7))               as A2 
      union all select 4 as A1,array(named_struct('c1',8,'c2',3),named_struct('c1',3,'c2',4))        as A2 
     ) 

select distinct 
     A1 

from T1 lateral view explode(A2) a2 as s 

where a2.s.C1 = 7 
; 

+----+ 
| a1 | 
+----+ 
| 1 | 
| 3 | 
+----+   
+0

更新された回答を確認する –