我在查找结果并正确转换日期和时间时遇到了一些麻烦。我有一个日期列的文件,我已经将unix时间转换为yyyy mm dd,我只想返回大于今天日期的结果 - 2天(所以两天前或更长时间)。在SQL中它只是current_date - 2但是在PIG中我有问题复制这个。这就是我所拥有的:
将unixtime转换为可读时间:
b = FOREACH a GENERATE ID as id, epochToFormat(TIME_COLUMN, 'yyyy-MM-dd', 'America/Chicago') as time;
b = FILTER b BY id == 123;
b = FILTER b by ToDate(time, 'yyyy-MM-dd') == CurrentTime(-2);
转储b;
答案 0 :(得分:0)
您必须使用SubtractDuration才能获得CurrentTime()前2天。您必须以ISO-8601格式指定持续时间。
C = FILTER B BY ToDate(ToString(time,'yyyy-MM-dd'), 'yyyy-MM-dd') > ToDate(ToString(SubtractDuration(CurrentTime(),'P2D'),'yyyy-MM-dd'),yyyy-MM-dd');