hive生成多行数据(根据指定的区间)

按顺序生成 50 - 60 之间的数字作为多行的记录集,结果如下:

 

 

第一步: 用最大值减去最小值,然后使用以下语句生成10个空的集合数组,

select 50 as minNum,split(space(60-50),'') as x;

显示如下:

 

 

 

第二步:将x进行展开,使用posexplode可以获得索引idx字段,通过将索引值+初始值50,就可以实现增长的序列了。

select idx,(minNum+idx) as num from(
 select 50 as minNum,split(space(60-50),'') as x
)t lateral view posexplode(x) pe as idx,blank

显示如下:

 

如果我们想生成一组日期,用作left join的左边值,就可以使用该方法了,

如下表示生成当前日期开始后的10天记录。

select idx,DATE_ADD(current_date(),idx) as dt from(
select 50 as minNum,split(space(60-50),'') as x
)t lateral view posexplode(x) pe as idx,blank

显示如下:

 

posted @ 2022-03-09 13:30  硅谷工具人  阅读(1199)  评论(0)    收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。