Hive高階函數posexplode(可以用於生成動態日期序列)


示例1:

現要生成start_time('2020-11-01')到end_time("2020-11-30")之間的所有日期

select  i, date_add('2020-11-01', pe.i) as dynamic_date ,'2020-11-01' as start_time, '2020-11-30' end_time
from  ods.test   
lateral view posexplode(split(space(datediff('2020-11-30', '2020-11-01')),' ')) pe as i, x  limit 30 ;

  ps:第一列為生成的索引值。其中的space函數為要生成幾個空格,方便以空格切分生成對應的索引個數。 

結果:

 

參考:

【Hive】生成動態日期序列

示例2:

 

 

SELECT
  single_id,
  single_time
FROM tempTable
 lateral view posexplode(split(id,',')) as single_id_index,single_id
 lateral view posexplode(split(time,',')) as single_time_index,single_time
WHERE
  single_id_index=single_time_index

 

spark兩種實現方式:

需求:

 

 實現:

 

 

 

參考:

[Hive] 兩個‘不常用’的函數posexplode和lag

 


免責聲明!

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



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