我需要一些关于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 |
提前致谢
答案 0 :(得分:0)
根据我对你的问题的理解,我创建了一个脚本。
A = load' pigexpr.txt'使用PigStorage(' |')为(id1,name1,cdate1);
B =加载' pigexpr.txt'使用PigStorage(' |')作为(id,name,cdate);
排名=排名A;
rankb = rank B;
B1 =按(rank_B> 1)过滤排名;
rankb1 =排名B1;
C =加入排名BY rank_A,rankb1 BY rank_B1;
D = foreach C generate ranking :: id1,ranking :: name1,ranking :: cdate1,rankb1 :: cdate;
转储D;