我需要一些关于APACHE Pig脚本的帮助:
考虑以下数据集:
ID |名称|创建日期
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有两个名称分配给它:ABC、DEF这里的要求是基于2个创建的日期创建一种ID和NAME的时间序列,并创建一个开始日期和结束日期。为了进一步澄清,我想要一个ID何时被分配给特定名称的所有序列,以及它的开始日期和结束日期是什么。以下是我期望的输出:
ID |名称|开始日期|结束日期
123|ABC | 2014-12-15 00:00:00.000 | 2014-12-25 00:00:0.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('|')将'pigepr.txt'加载为(id1,name1,cdate1);
B=使用PigStorage('|')作为(id,name,cdate)加载'pigepr.txt';
ranked=等级A;
rankb=秩B;
B1=按(rank_B>1)过滤rankb;
rankb1=等级B1;
C=加入按rank_A排序的rankb1,按rank_B1排序;
D=foreach C生成ranked::id1,ranked::name1,ranged::cdate1,rankb1::cdate;
转储D;