apache pig - 基于日期列存储文件

Posted

技术标签:

【中文标题】apache pig - 基于日期列存储文件【英文标题】:apache pig - store files based on date column 【发布时间】:2015-04-01 03:37:25 【问题描述】:

请帮帮我..我有下面的场景 - 输入文件..

ID name Time-stamp 
1234 kiran 18-MAR-2015 01:02:31
1234 kiran 18-MAR-2015 01:02:31
1234 kiran 19-MAR-2015 01:02:31 
1234 kiran 18-MAR-2015 11:02:31 
1234 kiran 20-MAR-2015 01:02:00
1234 kiran 11-MAR-2015 21:12:31
1234 kiran 18-MAR-2015 01:02:31 
1234 kiran 30-MAR-2015 01:02:31
1234 kiran 22-MAR-2015 01:11:00
1234 kiran 30-MAR-2015 01:02:31
1234 kiran 19-MAR-2015 01:02:00

现在我需要根据时间戳列中的日期编写输出文件,输出将是:

user/username/DATE/part-m-000000 

-- DATE 是可变的,所以文件夹名称应该是

user/username/18-MAR-2015/part-m-000000 

上面的文件包含单个日期的所有值

1234 kiran 18-MAR-2015 01:02:31
1234 kiran 18-MAR-2015 01:02:31 
1234 kiran 18-MAR-2015 11:02:31 
1234 kiran 18-MAR-2015 01:02:31

另一个文件夹名称应该是

user/username/19-MAR-2015/part-m-000000 

上面的文件包含单个日期的所有值

1234 kiran 19-MAR-2015 01:02:31 
1234 kiran 19-MAR-2015 01:02:00

另一个文件夹名称应该是

user/username/20-MAR-2015/part-m-000000 

上面的文件包含了单一日期的所有值

1234 kiran 20-MAR-2015 01:02:00

另一个文件夹名称应该是

user/username/22-MAR-2015/part-m-000000 

上面的文件包含了单一日期的所有值

1234 基兰 22-MAR-2015 01:11:00

另一个文件夹名称应该是

user/username/30-MAR-2015/part-m-000000 

上面的文件包含了单一日期的所有值

1234 kiran 30-MAR-2015 01:02:31
1234 kiran 30-MAR-2015 01:02:31

请帮帮我

谢谢你.. 斯里

【问题讨论】:

【参考方案1】:

以下步骤应该会有所帮助 -

    使用日期函数将时间戳转换为所需格式。 按日期分组 扁平化组 使用 org.apache.pig.piggybank.storage.MultiStorage 保存 #3 的结果。

【讨论】:

以上是关于apache pig - 基于日期列存储文件的主要内容,如果未能解决你的问题,请参考以下文章

从文件名中提取时间戳并使用 Pig 将其添加到新列(例如日期)中

Apache pig Store 基于条件

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

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

Pig:读取多个文件并逐列追加

如何在 apache pig 中将列添加到已经存在的表中