如何使用pig拉丁语查找最近7天的记录?

gt0wga4j  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(368)

我是拉丁Pig的初学者。我有一个要求,找到过去7天的记录,从csv包含过去4年的数据。
谁能帮我理解这个。

b91juud3

b91juud31#

假设您的数据集是一个,每天有一行,并且它有一个名为date的字段,您可以尝试以下类似的操作:

B = GROUP A BY date;
B = ORDER A BY group DESC;
B = LIMIT B BY 7;

然后,您将按日期分组最近七天的记录。

oogrdqng

oogrdqng2#

一个更通用的方法是比较每一行数据并检查它是否超过7天?为此,我们需要捕获每行数据中的日期。让数据集是一个关系数据集,列字段作为字符类型的日期。
在pig0.11中,可以使用todate()函数将日期字段从chararray转换为datetime数据类型,然后使用daysbetween()获取currenttime()和date之间的差异,并根据它进行过滤。例如:

lastSevenDaysRec = FILTER dataSet BY DaysBetween(CurrentTime(), ToDate(date, 'yyyy MM dd')) <= 7

您可以查看以下文档,以详细了解不同的拉丁语日期时间函数。您还可以查看todate函数中使用的有效格式

相关问题