HiveSQL:查询结构数组

时间:2016-08-09 09:34:19

标签: sql hiveql

我有一个包含结构数组的表(源自Spark镶木地板文件)。例如,表树看起来像这样:

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

我想得到所有family_name个至少有一个math等级高于90的孩子。请注意,孩子的数量可能因家庭而异。我怎么能这样做?

1 个答案:

答案 0 :(得分: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