zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

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

数据 生成 指定 根据 hive 区间 多行
2023-09-14 08:57:20 时间

按顺序生成 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

显示如下: