2017-04-03 9 views
0

私はHiveにJsonデータを挿入しています。これは形式です - 私はのように爆発し使用していますテーブルから句でハイブjsonデータの爆発の配列が爆発しない配列

A1 Array < 
struct < 
     product array < 
        struct < 
          dim1 array < struct <> > 
          dim2 array < struct <> > 
          > 
         > 
     >> 

Lateral view outer explode(A1.product) t1 as prod Lateral view outer explode(prod.dim1) t2 as prod_d1 Lateral view outer explode(prod.dim2) t3 as prod_d2 

サンプルデータ:

A1["product":[{"productsku":"p_dmf_qs:click: page load","v2productname":"Quality Score - click: page load","v2productcategory":"DMF","productvariant":"(not set)","productbrand":"xxxx","productrevenue":"1000","localproductrevenue":null,"productprice":"100","productquantity":"1","productrefundamount":null,"productlistname":"(not set)","dim1":[],"dim2":[]}]] 

私はselect文でt2とt3を呼び出すときprod_d1とprod_d2として、配列ではなく結果に構造体を取得しています。 私を助けてください。これはネストされた構造体です。もし私が最初の製品配列を持っていなかったら、A1.dim1とA1.dim2を2つの分解関数として簡単に参照できました。親切に私を助けてください。

+0

テーブル定義+小データサンプル(数行)を追加してください –

+0

私の質問でサンプルデータを更新しました。親切にチェックしてください。ありがとう – Bala

答えて

0
select t2.dim1,t2.dim2 
... 
Lateral view outer inline (A1)   t1 
Lateral view outer inline (t1.product) t2 
+0

ありがとうDudu ..私はt2.dim1とt2.dim2を使用しても、私は1つの配列(dim1とdim2配列)を扱っていません。テーブルでは、[]のように結果が得られます。これは、1つの配列が除外されていることを意味します。 A1の配列はt1で、製品の配列はt2でdim1とdim2のどちらを扱っていますか?それは私が詰まっているものだ – Bala

+0

両方の配列を爆発させるなら、あなたは製品に参加するでしょう –

関連する問題