示例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