如何用pig latin找到最近7天的记录?

时间:2014-04-13 03:56:33

标签: apache-pig records latin

我是Pig latin的初学者。我要求从csv中查找最近7天的记录,其中包含最近4年的数据。

任何人都可以帮助我理解这一点。

2 个答案:

答案 0 :(得分:1)

更通用的方法是比较每行数据并检查它是否超过7天? 为此,我们需要捕获每行数据中的日期。假设数据集是关系dataSet,列字段为chararray类型的日期。

在Pig 0.11中,您可以使用ToDate()函数将日期字段从chararray转换为datetime数据类型,然后使用DaysBetween()获取CurrentTime()和date之间的差异,并根据它进行过滤。例如:

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

您可以查看following documentation以了解Pig Latin中不同日期时间功能的详细信息。您还可以查看ToDate函数中使用的有效格式

答案 1 :(得分:0)

假设您的数据集是A并且每天有一行,并且它有一个名为date的字段,您可以尝试类似于此的内容:

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

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