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

时间:2015-04-01 03:37:26

标签: apache-pig

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

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 kiran 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

请帮帮我

谢谢.. Sree

1 个答案:

答案 0 :(得分:0)

以下步骤应该有所帮助 -

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