使用 Pig latin 从文件中获取最大日期

Posted

技术标签:

【中文标题】使用 Pig latin 从文件中获取最大日期【英文标题】:Get max date from file using Pig latin 【发布时间】:2020-03-18 17:49:29 【问题描述】:

我有一个包含日期和其他列的文本文件。 日期列值的格式为“yyyy-MM-dd HH:mm:ss”。

从文本文件中,我想获取最大日期或最新日期。 (注意:我看到 MAX 函数仅在 Pig Latin 中的 GROUP BY 时起作用)

谁能建议是否有办法使用 Pig Latin 或任何替代方法来获得它?

【问题讨论】:

与我们分享一些输入样本,以及您希望给定输入的输出如何 Apple|$600|2009-01-14 00:00:00| Apple|$650|2010-12-16 10:20:20| Banana|$800|2019-12-14 00:00:00| Banana|$800|2016-11-11 01:45:03| 从上面的输入,我应该可以得到 maxdate 是 2019-12-14 00:00:00 【参考方案1】:

基于样本数据集,

Apple|$600|2009-01-14 00:00:00| 
Apple|$650|2010-12-16 10:20:20| 
Banana|$800|2019-12-14 00:00:00| 
Banana|$800|2016-11-11 01:45:03|

日期列的最大值可以使用

fruits = LOAD 'fruits.txt' using PigStorage('|');
dt = FOREACH fruits GENERATE ToDate($2, 'yyyy-MM-dd HH:mm:ss');
odt = ORDER dt by $0 DESC;
max = LIMIT odt 1;
dump max;

【讨论】:

以上是关于使用 Pig latin 从文件中获取最大日期的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Pig Latin 从 AWS S3 加载数据

基于感兴趣的日期范围作为参数输入限制在 Pig Latin 中加载日志文件

添加文件夹名称以输出 Pig Latin

pig latin - 计数不同并分组

无法从 Pig Latin 的 Hadoop HDFS 加载文件

MAX(Count) 函数 apache pig latin