1. 程式人生 > 其它 >Lateral View explode

Lateral View explode

技術標籤:hive

Lateral View explode使用過程中炸裂行存在空值導致資料丟失的問題

一般使用

select id,con,con_detail
from 
(select 1 as id,'a,b,c' as con
union all select 2 as id,null as con 
union all select 3 as id,'' as con
)t
lateral view explode(split(con,',')) aa as con_detail

結果如下,

發現其中id為2的行不見了,原因是其炸裂的列值為null,解決辦法有兩種,一種是將空值進行非空

處理;另一種是使用outer關鍵字,如下

select id,con,con_detail
from 
(select 1 as id,'a,b,c' as con
union all select 2 as id,null as con 
union all select 3 as id,'' as con
)t
lateral view outer explode(split(con,',')) aa as con_detail

結果如下,