首页 > 其他 > 详细

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

时间:2020-12-11 22:52:51      阅读:237      评论:0      收藏:0      [点我收藏+]

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

 

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

原文:https://www.cnblogs.com/-courage/p/14122106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!