Pig 以毫秒为单位获取纪元时间戳的小时和分钟

Pig Get Hour and Minute of Epoch Timestamp in Milliseconds

我在猪中有一列以毫秒为单位的字节数组纪元时间戳。我想知道如何获得与此时间戳对应的小时和分钟。

例如:

Hour(1441016271778) = 10
Minute(1441016271778) = 17

pig 文档中的 GetHour 和 GetMinute 不起作用,它生成空值。

GetHour 和 GetMinute 将 DateTime 对象作为输入。

参考:

  1. http://pig.apache.org/docs/r0.12.0/func.html#get-hour
  2. http://pig.apache.org/docs/r0.12.0/func.html#get-minute

输入:

1441016271778

猪脚本:

A = LOAD 'input.csv'  USING  PigStorage(',') AS (epoch_time:long);
B = FOREACH A GENERATE  GetHour(ToDate(epoch_time)) AS hour, GetMinute(ToDate(epoch_time)) AS min;

输出:

(3,17)