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
我有一个带有结构数组的 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