2014-02-21 162 views
0

我有一個字段來記錄採購車是如下的信息。陣列的長度不固定。蜂巢查詢嵌套arrary

[["SKU_001","Product Name A","Category1",$10.5,1], 
["SKU002","Product Name B","Category1",$20,3]] 

我戈拉是將其非規範化成扁排,這可能是這樣的:

SKU | Product Name | Category | Unit Price | Product Quantity 

SKU001 | Product Name A | Category1 | $10.5  | 1 

SKU002 | Product Name B | Category2 | $20  | 3 

是否有可能實現轉型,而無需編寫一個UDF?

回答

0

您可以使用「橫向視圖爆炸(...)」語法來獲得子陣列爲行,然後選擇出子陣列的各個元素,讓他們爲列。

select 
    cart[0] as SKU, 
    cart[1] as product_name, 
    cart[2] as category, 
    cart[3] as unit_price, 
    cart[4] as product_quantity 
from my_table lateral view explode(my_nested_array_field) t as cart 
+0

感謝您的幫助。我試着爆炸nested_array字段,但執行配置單元查詢時出現未知異常錯誤字段。 我不確定Hive是否支持嵌套數組查詢。我只能使用非嵌套數組(如數組(1,2,3))成功執行爆炸。 還有什麼建議嗎? – vnnw

+0

我想有些人正在研究這個問題。看到這個帖子: https://github.com/rcongiu/Hive-JSON-Serde/issues/47 – vnnw