我目前正在使用hadoop处理一个大型数据集(大约3 Gig)的计数任务。我需要计算填充在同一时间段的内容。例如:计算时间标签在凌晨3点到凌晨4点之间的记录数。我需要输出是连续的,如果在某个时间段没有记录,我仍然希望在输出中保留它,比如[3am~4am,0个记录]。
为了实现这一点,我提出了一个想法,可以在map任务开始之前将值为0的所有时隙放入Map输出中。但我试过谷歌,却找不到解决办法。
那么,有没有什么方法可以在map任务开始之前输出一些东西呢?我也将感谢任何新的想法,以实现这一目标。谢谢
1条答案
按热度按时间svujldwt1#
解决方法是在你的计数任务的同时进行,以节省时间。
假设您有以下文件/表
日期时间产品价值
2016年14:00,三星,100
2016,15:30,lg,130
2016年,15:59,nexus,50
2016,18:10,lg,15
你要按产品分组,找出每种产品的总数,但同时你要计算出时间标签在凌晨3点到4点之间的记录数
只需在Map器类中定义自定义键并将其发送到上下文,具体取决于您的条件