LATERAL VIEW EXPLODE与LATERAL VIEW OUTER EXPLODE的区别
Posted 伴生伴熟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LATERAL VIEW EXPLODE与LATERAL VIEW OUTER EXPLODE的区别相关的知识,希望对你有一定的参考价值。
LATERAL VIEW EXPLODE与LATERAL VIEW OUTER EXPLODE的区别
- LATERAL VIEW EXPLODE 当需要拆分的字段为null时,null的那行数据不会出现在结果
- LATERAL VIEW OUTER EXPLODE 所有行都会显示在结果集中(包含要拆分的字段为null时)
LATERAL VIEW EXPLODE :
SELECT a.c1,
a.c2,
b.c22
FROM (
SELECT '1' AS c1,
'a,b,c' AS c2
UNION ALL
SELECT '2' AS c1,
NULL AS c2
UNION ALL
SELECT '3' AS c1,
'' AS c2
) a
LATERAL VIEW
EXPLODE(split(a.c2, ',')) b AS c22;
结果:
c1 c2 c22
1 a,b,c a
1 a,b,c b
1 a,b,c c
3
LATERAL VIEW OUTER EXPLODE :
SELECT a.c1,
a.c2,
b.c22
FROM (
SELECT '1' AS c1,
'a,b,c' AS c2
UNION ALL
SELECT '2' AS c1,
NULL AS c2
UNION ALL
SELECT '3' AS c1,
'' AS c2
) a
LATERAL VIEW OUTER
EXPLODE(split(a.c2, ',')) b AS c22;
结果:
c1 c2 c22
1 a,b,c a
1 a,b,c b
1 a,b,c c
3
2 NULL NULL
以上是关于LATERAL VIEW EXPLODE与LATERAL VIEW OUTER EXPLODE的区别的主要内容,如果未能解决你的问题,请参考以下文章
hive函数之~hive当中的lateral view 与 explode
Hive中grouping sets与lateral view explode的用法
Hive中grouping sets与lateral view explode的用法