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 c2UNION ALLSELECT  '2' AS c1,NULL AS c2UNION ALLSELECT  '3' AS c1,'' AS c2) a
LATERAL VIEWEXPLODE(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 c2UNION ALLSELECT  '2' AS c1,NULL AS c2UNION ALLSELECT  '3' AS c1,'' AS c2) a
LATERAL VIEW OUTEREXPLODE(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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部