如何提取猪的所有星期日

时间:2014-05-15 04:56:38

标签: apache-pig

嗨!

我有一个id为:chararray和date:chararray的数据集。现在,我想将数据集过滤到以:

开头的那些行
  • 如果当月的第一天是星期日,请选择当月的所有星期日。

  • 否则请选择上个月的最后一个星期日和当月的所有星期日。

所以,对于下面给出的

12456,  27-04-2014 (last Sunday of the previous month)
33578,  29-04-2014 (not Sunday)
43789,  04-05-2014 (Sunday)
57689,  06-05-2014 (not Sunday)
67890,  11-05-2014 (Sunday)
67845,  13-05-2014 (not Sunday)
57689,  18-05-2014 (Sunday)
33578,  25-05-2014 (Sunday)

输出为

12456,  27-04-2014 (last Sunday of the previous month)
43789,  04-05-2014 (Sunday)
67890,  11-05-2014 (Sunday)
57689,  18-05-2014 (Sunday)
33578,  25-05-2014 (Sunday)

那么,有没有办法可以轻松找到当月的星期日,如果该月的第一天不是星期日,则选择上个月的最后一个星期日。

我可以使用所有Date函数,例如Pig中的DaysBetween和GetDay。

1 个答案:

答案 0 :(得分:0)

来自Apache PIG: Get the day of the week and split accordingly

(DaysBetween(ToDate('03-10-2013','dd-MM-YYY'),ToDate(0L)) + 4L) % 7

然后,您可以过滤返回的值