Hive LATERAL VIEW 函数

来源:互联网 发布:jenkins python pdf 编辑:程序博客网 时间:2024/06/08 10:31

函数简介

lateral view 函数用于将数据一行转多列,一般与explode、split、collect_set函数一起使用

基本使用

案例:现在有一张学生绩效表,记录了每个学生的所有科目的成绩, 需要查询所有拿了A的学生数

student_name(string) student_course(array[]) stuA [‘A’,’B’,’C’] stuB [‘A’,’C’] stuC [‘B’,’C’]

现在使用lateral view + explode函数对数据进行拆解,多行变一行

select student_name,course_value from student_course LATERRAL VIEW explode(student) tpTable AS course_value

拆解完成之后所得数据如下

student_name course_value stuA ‘A’ stuA ‘B’ stuA ‘C’ stuB ‘A’ stuB ‘C’ stuC ‘B’ stuC ‘C’

接下来就可以进行聚合分析了:

select course_value,count(distinct student_name) as stu_num from course_single group by course_value where course_value='A'

结果:

course_value stu_num ‘A’ 2