使用 lateral view explode(col1)后行数变少了,bug排查

问题复现

查询该表结果为100行

select count(1) as cnt

from (

select distinct a,b,c

from pageAds

)

查询下表条数为90行

select count(1) as cnt

from (

select distinct a,b,c

from pageAds

)

lateral view explode(split(a,',')) adTable as d

思考:第二条语句只比第一个多一个炸裂函数,炸裂函数的作用是将数据炸开变成多行数据,为什么还会条数变少了呢?

经过各种资料查找,数据探索,发现当字段是空时,不会形成新的一行,而是会把这条数据过滤掉

例如有20条a是空,那如果a都没有被分割,那就会生成80条数据,我这个a有被分割,所以生成了90条数据

注意:以后用这个的时候一定要探索好分割字段,当有空的时候提前把空值处理好,例如提前赋默认值

如下

select count(1) as cnt

from (

select distinct coalesce (case when a='' then ','

else a

end ,

',') as a

,b,c

from pageAds

)

lateral view explode(split(a,',')) adTable as d

相关推荐
Hello.Reader2 分钟前
Flink DataGen SQL Connector 本地造数、压测、边界数据与“像真数据”的生成技巧
大数据·sql·flink
05大叔6 分钟前
微服务Day01 MP
数据库·oracle
Jan123.9 分钟前
深入理解数据库事务与锁机制:InnoDB实战指南
数据库·学习
wWYy.9 分钟前
详解redis(6):数据结构string、list
数据库·redis·缓存
小北方城市网11 分钟前
MyBatis 进阶实战:插件开发与性能优化
数据库·redis·python·elasticsearch·缓存·性能优化·mybatis
Hello.Reader11 分钟前
Flink SQL 压测最短闭环Print 验证正确性 + BlackHole 榨干性能上限(附 Join/Agg/TopN/UDF 模板)
大数据·sql·flink
驾数者11 分钟前
Flink SQL CDC实时同步:基于Debezium的变更数据捕获
大数据·sql·flink
xzl0413 分钟前
小智服务器intent_type 初始化为function_call过程
linux·前端·数据库
悟能不能悟14 分钟前
mysql主键递增,之前已经插入的id有1,2,3,4,5,手动插入的那条记录id=15,那后面让它自动生成主键,会是从15开始,还是从5开始
数据库·mysql
小杰帅气23 分钟前
我的发什么是基础的IO流
数据库