HiveSQL:查询结构数组

HiveSQL: Query an array of structs

我有一个带有结构数组的 table(源自 Spark parquet 文件)。例如,table 树看起来像这样:

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

我想获取所有 family_name 中至少有一个 math 成绩高于 90 分的孩子。请注意,孩子的数量可能因家庭而异。我该怎么做?

搞清楚:

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