Lateral View Outer
语法:
lateralView: LATERAL VIEW [OUTER] udtf(expression) tableAlias AS columnAlias (',' columnAlias) * fromClause: FROM baseTable (lateralView)*
Lateral view outer:当table function不输出任何一行时,对应的输入行在Lateral view结果中依然保留,且所有table function输出列为null。
在Hive0.12.0版本后引入
用户可以指定可选的OUTER关键字来生成行,即使LATERAL VIEW通常不会生成行。当所使用的UDTF不产生任何行时(使用explode()函数时,explode的列为空时,很容易发生上述这种情况)。 在这种情况下,源数据行不会出现在结果中。如果想让源数据行继续出现在结果中,可以使用 OUTER可以用来阻止关键字,并且来自UDTF的列使用NULL值代替
举例:
sql1:select goods_id2,area from explode_lateral_view LATERAL VIEW explode(split(goods_id,','))goods as goods_id2;
第一个sql中explode返回的数据不是空值,所以正常拆分
sql2:select goods_id2,area from explode_lateral_view LATERAL VIEW explode(array())goods as goods_id2;
第二个sql中explode返回的数据是空值,所以不用outer的情况下,不输出任何东西
sql3:select goods_id2,area from explode_lateral_view LATERAL VIEW Outer explode(array())goods as goods_id2;
第三个sql在第二个sql的基础上添加了一个Outer,结果会展示。只是来自UDTF的列被NULL值替代。
备注:
<property>
<!--展示当前数据库名称>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<!--查询的时候打印字段信息>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
参考:https://help.aliyun.com/document_detail/87722.html?spm=a2c4g.11186623.6.694.19c16f41znW7iW
Lateral View Outer相关推荐
- lateral view 和 lateral view outer的区别
lateral view 为侧视图,一般用于行转列的处理中 通常会与explode 搭配使用 1.explode 可以拆分map or array 示例 select explode(split(&q ...
- 【SQL】LATERAL VIEW 的用法
通过SQL实现列转行 order_sn user_id coupon_sn A 1 券A1,券A2,券A3 B 2 券B1 C 3 (NULL) D 4 券D1 SELECT table_a.orde ...
- Hive SQL 中ARRAY或MAP类型数据处理:lateral view explode()/posexplode()——行转列函数
前言:在对表数据进行批量处理过程中,常常碰上某个字段是一个array或者map形式的字段,一列数据的该字段信息同时存在多个值,当我们需要取出该数组中的每一个值实现一一对应关系的时候,可以考虑使用lat ...
- Hive Lateral View explode字段值为空时,导致数据异常丢失解决方案
1.问题描述 日常工作中,我们经常会用Lateral View 结合explode把非结构化数据转化成结构化数据,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失. 现 ...
- Hive Lateral View + explode 详解
hive中的函数分为3类,UDF函数.UDAF函数.UDTF函数 UDF:一进一出 UDAF:聚集函数,多进一出,类似于:count/max/min UDTF:一进多出,如explore().pose ...
- LATERAL VIEW EXPLODE函数详解及应用
需求背景:在进行统计分析的时候有时候会有类似这样的需求 比如求某个平台某一天所有的订单总和,或者淘宝所有pc 端的交易总和,这个时候我们可以基于原本基础的数据进行炸裂处理之后得出结结果值,方便后续进行 ...
- Hive Lateral View使用指南
1. 语法 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* fromCl ...
- Hive中lateral view的应用到源码解读
对于从事大数据开发的同学,经常会应用到explode(炸裂函数)和lateral view(侧输出流). Explode(炸裂函数) 参数必须是array或者map格式(通常跟split函数使用): ...
- hivesql之lateral view explode遇到记录为空情况
在正常解析一个有值的字符串时,用lateral view explode是完全ok的,但是,当遇到该字符串为空时,如果在使用该函数,就会导致该条记录消失.这时候需要加个outer lateral vi ...
最新文章
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- 脑外伤急救后迟发性颅脑损伤影响因素分析案例
- 独家|OpenCV 1.3 矩阵的掩膜操作(附链接)
- 【GoLang】GoLang 遍历 map、slice、array方法
- openssl-1.0.1e for arm
- linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)
- 137_Power BI 自定义矩阵复刻Beyondsoft Calendar
- IBM Machine Learning学习笔记(二)——Supervised Learning: Regression
- MySQL 第二次练习(源码安装、数据库和表的建立)
- Java多线程问题之同步器CyclicBarrier
- 最流行的 6 款 Python 解释器
- oracle 中explain,oracle执行计划的使用(EXPLAIN)
- 1016day3:city查询系统json模块、餐厅点菜系统、点餐系统(class类)
- js字符串时间格式与中国标准时间格式相互转换
- matlab quadratic,请教几个quadratic programming的问题
- R-squared居然是负数
- i5 9400f参数 i5 9400f性能怎么样
- 首次!嫦娥四号成功软着陆月球背面,中国探测器完成人类航天史壮举...
- 有极性电容与无极性电容的概述(详解)
- 第二篇 再读Spring 之 BeanDefinition解析