Apache pig 查找清管器中开始和结束时间之间的差异
有谁能告诉我如何找到猪的两次之间的差异 例如,下面是示例开始时间和结束时间,我需要找出PIG中开始时间和结束时间之间的差异Apache pig 查找清管器中开始和结束时间之间的差异,apache-pig,Apache Pig,有谁能告诉我如何找到猪的两次之间的差异 例如,下面是示例开始时间和结束时间,我需要找出PIG中开始时间和结束时间之间的差异 12:31:38,14:54:04 10:18:34,13:30:56 13:37:43,15:18:57 08:15:10,11:28:17 提前感谢…使用UDF转换为UNIX时间戳,piggybank中有一个: DEFINE ISOToUnix org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix
12:31:38,14:54:04
10:18:34,13:30:56
13:37:43,15:18:57
08:15:10,11:28:17
提前感谢…使用UDF转换为UNIX时间戳,piggybank中有一个:
DEFINE ISOToUnix org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix();
然后,类似于:
a = FOREACH Dates GENERATE ISOToUnix(date2) - ISOToUnix(date1) AS diff ;
它可能需要一些格式化/键入,但应该可以工作。找不到一种简单的方法。以下是一个解决方法:
t = LOAD ' input/data' USING PigStorage(',') as (time1:chararray,time2:chararray);
u = FOREACH t GENERATE SecondsBetween(ToDate(time2,'HH:mm:ss'),ToDate(time1,'HH:mm:ss')) as seconds;
v = FOREACH u GENERATE seconds/3600 as hours,(seconds%3600)/60 as minutes,(seconds%3600)%60 as seconds;
STORE v into 'output/data' USING PigStorage(':');
使用此代码输出示例数据:
2:22:26
3:12:22
1:41:14
3:13:7