我是 Pig latin 的初学者。我需要从 csv 中找到最近 7 天的记录,其中包含最近 4 年的数据。
谁能帮我理解这一点。
更通用的方法是比较每一行数据并检查它是否超过 7 天?为此,我们需要捕获每行数据中的日期。让数据集是一个关系数据集,其中列字段为 chararray 类型的日期。
在 Pig 0.11 中,您可以使用 ToDate() 函数将日期字段从 chararray 转换为 datetime 数据类型,然后使用 DaysBetween() 获取 CurrentTime() 和日期之间的差异并根据它进行过滤。例如:
lastSevenDaysRec = FILTER dataSet BY DaysBetween(CurrentTime(), ToDate(date, 'yyyy MM dd')) <= 7
您可以查看以下文档以详细了解 Pig Latin 中的不同日期时间函数。您还可以查看 ToDate 函数中使用的有效格式
假设您的数据集是 A 并且每天有一行,并且它有一个名为 date 的字段,您可以尝试类似这样的操作:
B = GROUP A BY date;
B = ORDER A BY group DESC;
B = LIMIT B BY 7;
然后,您将按日期对过去 7 天的记录进行分组。