我需要在两个之间分割日期并忽略星期六和星期日。内置于0.11.1的功能将有助于获得一周中的某一天,但如何确定是周六还是周日?有人有任何想法吗?我的预期产出如下所述。
输入:
User Fromdate Todate
Raj 10/3/2013 10/8/2013
James 10/4/2013 10/7/2013
等。
预期输出:
Raj 10/3/2013
Raj 10/4/2013
Raj 10/7/2013
Raj 10/8/2013
James 10/4/2013
James 10/7/2013
答案 0 :(得分:2)
由于Pig DateTime对象的确是Unix纪元时间(以毫秒为单位), 这可以通过开箱即用的Pig操作员轻松完成。
(DaysBetween(ToDate('10/3/2013','MM/dd/yyyy'),ToDate(0L)) + 4L) % 7
从Unix命令行确认这是如此:
$> date -d '1/1/1970' +%w-%a
4-Thu
$> date -d '10/3/2013' +%w-%a
4-Thu
当然,如果你对UDF感到满意,这是一个常见的要求,那就是最好的解决方案。
Carter Shore
答案 1 :(得分:0)
您需要编写UDF。您可以使用Java的Calendar
类来执行此操作。