【发布时间】:2015-05-13 03:14:44
【问题描述】:
我知道,如果我们要使用 Mahout 的推荐库,无论它是否分布式,我们都必须首先将 String id 转换为长 ID。
如果数据集不是太大,一切都很好,我可以轻松地使用内存表或IDMigrator 将String id 映射到长 id。但是,当数据集很大时,这种字符串到长的映射作业会成为瓶颈。
例如,假设我有 1000 万用户,即使我可以非常快速地在 EMR 上进行数据预处理和模型训练。我仍然必须在某台机器上遍历所有这些用户 String id,以便为这些用户生成长 id 而不会发生冲突,如果用户数不断增加,这显然不是不可行的。
即使我将此映射存储在某种数据库中,为新用户分配长 id 仍然需要单线程以避免分配重复的 id,此任务再次成为无法扩展的瓶颈。
那么有没有更好的方法来进行 String id 到 long id 的映射?
【问题讨论】:
标签: mahout recommendation-engine mahout-recommender