hive生成多行數據(根據指定的區間)


按順序生成 50 - 60 之間的數字作為多行的記錄集,結果如下:

 

 

第一步: 用最大值減去最小值,然后使用以下語句生成10個空的集合數組,

select 50 as minNum,split(space(60-50),'') as x;

顯示如下:

 

 

 

第二步:將x進行展開,使用posexplode可以獲得索引idx字段,通過將索引值+初始值50,就可以實現增長的序列了。

select idx,(minNum+idx) as num from(
 select 50 as minNum,split(space(60-50),'') as x
)t lateral view posexplode(x) pe as idx,blank

顯示如下:

 

如果我們想生成一組日期,用作left join的左邊值,就可以使用該方法了,

如下表示生成當前日期開始后的10天記錄。

select idx,DATE_ADD(current_date(),idx) as dt from(
select 50 as minNum,split(space(60-50),'') as x
)t lateral view posexplode(x) pe as idx,blank

顯示如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM