1

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

谁能帮我理解这一点。

4

2 回答 2

1

更通用的方法是比较每一行数据并检查它是否超过 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 函数中使用的有效格式

于 2014-04-15T18:53:54.557 回答
0

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

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

然后,您将按日期对过去 7 天的记录进行分组。

于 2014-04-15T07:02:09.847 回答