2016-08-09 99 views
0

我有一個表結構數組(源自Spark地板文件)。作爲一個例子,該表樹是這個樣子:HiveSQL:查詢結構數組

| -- family_name : string 
| -- kids : array 
     | -- element : struct 
       | -- name : string 
       | -- id : string 
       | -- class_grades : struct 
         | -- math : int 
         | -- science : int 

我想獲得的所有family_name S其中有至少一個孩子有math等級90以上注意孩子的數量可能會有所不同家庭。我怎樣才能做到這一點?

回答

0

圖出來:

SELECT 
      family_name, 
      grades.math 
FROM 
      (SELECT 
         family_name, 
         grades 
      FROM 
         table_name 
      LATERAL VIEW OUTER 
         explode(class_grades) c as grades) 
AS 
      exploded_grades 
WHERE  grades.math > 90