在Apache Pig中创建时间序列

时间:2015-03-03 06:33:43

标签: hadoop mapreduce apache-pig

我需要一些关于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 |

提前致谢

1 个答案:

答案 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;