我在寻找每天最冷的时刻。我的数据如下:
(2015/12/27,12AM,32.0)
(2015/12/27,12PM,34.0)
(2015/12/28,10AM,26.1)
(2015/12/28,10PM,28.0)
(2015/12/28,11AM,27.0)
(2015/12/28,11PM,28.9)
(2015/12/28,12AM,25.0)
(2015/12/28,12PM,26.100000000000005)
(2015/12/29,10AM,22.45)
(2015/12/29,10PM,26.1)
(2015/12/29,11AM,24.1)
(2015/12/29,11PM,25.0)
(2015/12/29,12AM,28.9)
我在每天分组,以找到具有以下代码的最低温度:
minTemps = FOREACH gdate2 GENERATE group as day,MIN(removeDash.temp) as minTemp;
从而产生以下输出:
(2015/12/18,17.1)
(2015/12/19,12.9)
(2015/12/20,23.0)
(2015/12/21,32.0)
(2015/12/22,30.899999999999995)
(2015/12/23,36.05)
(2015/12/24,30.45)
(2015/12/25,26.55)
(2015/12/26,28.899999999999995)
(2015/12/27,26.1)
(2015/12/28,23.55)
(2015/12/29,21.0)
我的problem:i also 需要最低温度出现的时间。我怎样才能同时得到时间呢?
2条答案
按热度按时间vmpqdwk31#
是的,你在正确的轨道上。修改你的组语句以按天和小时分组。最后在你的组上使用展平将键解耦。
0s0u357o2#
如果我对你的问题理解正确,按
(day, hour)
不会起作用,因为它会找到每个小时的最冷温度,而不是每天的最冷时间和温度。相反,请使用嵌套的foreach:
像以前一样按天分组,然后按温度排序同一天内的所有小时,只选择最上面的记录。请注意,如果两个或两个以上的小时之间有联系,则只会选择其中一个小时。