使用 ToDate 将datestring转换为datetime类型。然后使用 GetWeek 获取周数。最后使用 GROUP 按周数分组 SUM .
A = LOAD '/path_to_data/data' USING PigStorage(',') as (c1: chararray, c2: int, c3: float);
B = FOREACH A GENERATE GetWeek(ToDate(c1,'yyyyMMddHHmm')) as weeknum, c1, c2, c3;
C = FOREACH (GROUP B BY weeknum) GENERATE group as weeknum, SUM(B.c2) as c2_sum;
DUMP C;
2条答案
按热度按时间fykwrbwg1#
使用getweek并从第一列创建一个新列。然后按新列分组并使用sum。假设已将数据加载到关系a。
iqjalb3h2#
使用
ToDate
将datestring转换为datetime类型。然后使用GetWeek
获取周数。最后使用GROUP
按周数分组SUM
.