Hadoop ApachePig:获取一周中的某一天,并相应地进行分割
我需要把两个日期分开,忽略周六和周日。0.11.1上的内置函数将有助于获取一周中的某一天,但如何确定这是周六还是周日?有人知道吗?我的预期输出如下所述 输入: 用户从日期到日期 Raj 10/3/2013 10/8/2013 詹姆斯10/4/2013 10/7/2013 等等 预期输出: 2013年3月10日 Raj 10/4/2013 2013年7月10日 Raj 10/8/2013 詹姆斯10/4/2013Hadoop ApachePig:获取一周中的某一天,并相应地进行分割,hadoop,apache-pig,Hadoop,Apache Pig,我需要把两个日期分开,忽略周六和周日。0.11.1上的内置函数将有助于获取一周中的某一天,但如何确定这是周六还是周日?有人知道吗?我的预期输出如下所述 输入: 用户从日期到日期 Raj 10/3/2013 10/8/2013 詹姆斯10/4/2013 10/7/2013 等等 预期输出: 2013年3月10日 Raj 10/4/2013 2013年7月10日 Raj 10/8/2013 詹姆斯10/4/2013 James 10/7/2013您需要编写一份UDF。您可以使用Java的类来实现这一
James 10/7/2013您需要编写一份UDF。您可以使用Java的类来实现这一点。因为Pig DateTime对象实际上是以毫秒为单位的Unix历元时间, 这可以通过开箱即用的清管器操作员轻松完成
(DaysBetween(ToDate('10/3/2013','MM/dd/yyyy'),ToDate(0L)) + 4L) % 7
- 产生一个长范围0…6,其中0=太阳,1=周一。。。等
- 0L代表1970年1月1日,星期四
- 添加4L天等于0=周日
$> date -d '1/1/1970' +%w-%a
4-Thu
$> date -d '10/3/2013' +%w-%a
4-Thu
当然,如果您对UDF感到满意,并且这是一个常见的需求,那么这是最好的解决方案
卡特海岸