示例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函數為要生成幾個空格,方便以空格切分生成對應的索引個數。
結果:

參考:
示例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
