如何在HIVE中生成日期系列?(创建表)

She*_*hai 7 hadoop hive

假设我目前有一个表,每个帐户有1行,表中的数据是:

  1. 帐号
  2. 开始日期
  3. 结束日期

现在我想创建一个新表,每个帐户打开一天有1行,即每个帐户的开始和结束日期(包括)之间每行1天.

例如

表格1

Account Number    Start Date    End Date
123               1-Jan-17      1-Jul-17
456               1-Feb-17      4-May-17
Run Code Online (Sandbox Code Playgroud)

表2(所需表)

Account Number    Day
123               1-Jan-17
123               1-Jan-17
     ...
123               1-Jul-17
456               1-Feb-17
456               2-Feb-17
     ...
456               4-May-17
Run Code Online (Sandbox Code Playgroud)

我知道在Postgresql中有一个叫做"生成系列"的函数可以让你轻松完成.我想知道HIVE中是否有类似的功能可以让你这样做?

谢谢!

Dav*_*itz 21

select  t.AccountNumber
       ,date_add (t.StartDate,pe.i)   as Day

from    Table1 t
        lateral view 
        posexplode(split(space(datediff(t.EndDate,t.StartDate)),' ')) pe as i,x
Run Code Online (Sandbox Code Playgroud)