我需要以下APACHE Pig脚本的帮助:
考虑以下数据集:
ID | NAME |创建日期
123 | ABC | 2014-12-15 00:00:00.000
123 | ABC | 2014-12-25 00:00:00.000
123 | DEF | 2014-12-31 00:00:00.000
123 | ABC | 2015-01-02 00:00:00.000
123 | DEF | 2015-02-16 00:00:00.000
在上述数据中,可以为任何特定的ID分配和重新分配不同的NAME,例如,上面的ID:123分配了2个名称:ABC,DEF
此处要求它根据2个创建日期创建一种ID和NAME的时间序列,并创建开始日期和结束日期。
为了澄清一点,我想知道将ID分配给特定名称的所有顺序,以及它的开始日期和结束日期。
以下是我期望的输出:
ID | NAME |开始日期|结束日期
123 | ABC | 2014-12-15 00:00:00.000 | 2014-12-25 00:00:00.000
123 | DEF | 2014-12-31 00:00:00.000 | 2015-01-02 00:00:00.000
123 | ABC | 2015-01-02 00:00:00.000 | 2015-02-16 00:00:00.000
123 | ABC | 2015-02-16 00:00:00.000 |
提前致谢
最佳答案
根据对您问题的了解,我创建了一个脚本。
A =使用PigStorage('|')作为(id1,name1,cdate1)加载'pigexpr.txt';
B =使用PigStorage('|')作为(id,name,cdate)加载'pigexpr.txt';
排名=排名A;
rankb =等级B;
B1 =通过(rank_B> 1)过滤等级
rankb1 =等级B1;
C =联接按rank_A排名,rankb1 BY rank_B1;
D = foreach C生成rank::id1,ranked::name1,ranked::cdate1,rankb1::cdate;
转储D;
关于hadoop - 在Apache Pig中创建时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825497/