我有样本数据 user_id, date, accessed url, session time
根据会话时间,数据指的是用户最感兴趣的三个方面。
使用代码获取数据:
top3 = FOREACH DataSet{
sorted = ORDER DataSet BY sessiontime DESC;
lim = LIMIT sorted 3;
GENERATE flatten(group), flatten(lim);
};
输出:
(1,20,url1,2484)
(1,20,url2,1863)
(1,20,url3,1242)
(2,22,url4,484)
(2,22,url5,63)
(2,22,url6,42)
(3,25,url7,500)
(3,25,url8,350)
(3,25,url9,242)
但我希望我的输出是这样的:
(1,20,url1,url2,url3)
(2,22,url4,url5,url6)
(3,25,url7,url8,url9)
请帮忙。
1条答案
按热度按时间yx2lnoni1#
你很接近。问题是你
FLATTEN
当你真的想把所有的网址都保存在一个记录里的时候。因此,请改为:根据您得到的输出,您现在将得到
请注意,url包含在一个包中。如果您想将它们作为三个顶级字段,则需要使用自定义项将包转换为元组,然后
FLATTEN
那个。