小言_互联网的博客

Hive lateral view explode()的使用

310人阅读  评论(0)

**Hive lateral view explode()的使用 **

每天一点点,记录工作中实际可行操作

lateral view为侧视图,意义是为了配合UDTF来使用,把某一行数据拆分成多行数据.不加lateral view的UDTF只能提取单个字段拆分,并不能塞会原来数据表中.加上lateral view就可以将拆分的单个字段数据与原始表数据关联上.
在使用lateral view的时候需要指定视图别名和生成的新列别名
例如
select id,num from table lateral view explode(array1) subview as num;
subview为视图别名,num为指定新列别名
lateral view explode 相当于一个拆分array1字段的虚表,然后根据id将其与原表进行笛卡尔积关联

实际例子
假设 all_daye 的内容为 0,3,1,279

select id, name, max(detail_daye) max_daye --取解析后的最大一个
from table_name ---你的表名
LATERAL VIEW explode(split(all_daye,',')) dayee  ---视图别名,名字随意取
                                                                    AS detail_daye ----新列别名,名字随意取
where  deleted=0  and id = '118'
and detail_daye  not in (1,3)  --解析后的新列作为限制条件
group by  id, name

输出结果

还想不明白的,再读两遍,就明白了


转载:https://blog.csdn.net/YmeBtc/article/details/100996470
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场