示例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高阶函数posexplode(可以用于生成动态日期序列)

 

参考:

【Hive】生成动态日期序列

示例2:

Hive高阶函数posexplode(可以用于生成动态日期序列)

 

 

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(可以用于生成动态日期序列)

 

 实现:

Hive高阶函数posexplode(可以用于生成动态日期序列)

Hive高阶函数posexplode(可以用于生成动态日期序列)

 

 

 

参考:

[Hive] 两个‘不常用’的函数posexplode和lag

 

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-08-13
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
猜你喜欢
  • 2021-09-22
  • 2022-12-23
  • 2021-08-02
  • 2022-12-23
相关资源
相似解决方案