我们需要作为启动产品的一部分来计算“类似的用户功能”。我们决定和猪一起去。 我已经学习了几天猪,并了解它是如何工作的。 所以从这里开始是日志文件的样子。
user url time
user1 http://someurl.com 1235416
user1 http://anotherlik.com 1255330
user2 http://someurl.com 1705012
user3 http://something.com 1705042
user3 http://someurl.com 1705042
由于用户和网址数量巨大,我们无法在此处使用强力方法,因此首先我们需要找到至少可以访问公共网址的用户。
该算法可以拆分为:
这是我到目前为止写的:
A = LOAD 'logs.txt' USING PigStorage('\t') AS (uid:bytearray, url:bytearray, time:long);
grouped_pos = GROUP A BY ($1);
我知道它还不多,但现在我不知道如何生成这对或进一步移动。 所以任何帮助都会受到赞赏。
感谢。
答案 0 :(得分:3)
来自IBM的一个很好的,详细的paper与MapReduce共同聚类可能对你有用。
Google新闻个性化paper描述了一种相当直接的Locality Sensitive Hashing实现方案,用于解决同样的问题。
答案 1 :(得分:0)
对于算法,请查看有关查询/ URL二分图的论文。以下是几个链接:
使用点击时间查询建议 由乔朱梅,邓登周,肯尼斯教堂 http://www-personal.umich.edu/~qmei/pub/cikm08-sugg.ppt
点击图表上的随机漫步 Nick Craswell和Martin Szummer 2007年7月 http://research.microsoft.com/apps/pubs/default.aspx?id=65235