我正在尝试采用类似以下格式:
{Bill,{2017-08-09,{纽约到旧金山,(123,456,789)}}}}
我一直在使用BAGGROUP datafu函数来实现这一点:
(Adam Diaz, { (2016-05-28-11, {(孟菲斯到小石城)}), (2016-05-27-22, {(乔普林到堪萨斯城2号公路)}), (2016-05-28-09, {(得梅因至芝加哥2号线)}), (2016-06-02-20, {(孟菲斯至小石城2号路线), (从圣路易斯到孟菲斯), (孟菲斯到小石城) } ) } )
在此,我已使用GROUP函数按驱动程序名称分组,然后使用BAGGROUP函数按日期分组。但是我确实需要一个低于该级别的子级别,以便在驾驶员上路等每一天提供该时间。
我认为我需要以某种方式嵌套BAGGROUP,但不确定如何执行此操作。按名称分组>按日期分组>按路线分组>时间段。
我的代码的当前位:
fields = FOREACH fil GENERATE
routeName,
driverName,
eventDate,
eventTime;
dis = DISTINCT fields;
data = FOREACH (GROUP dis BY driverName) {
GENERATE FLATTEN(group) AS driverName,
BAGGROUP(dis.(eventDate, eventTime, routeName), dis.(routeName)) AS grouped;
}
DESCRIBE data;