如何创建自己的RecommenderJob?

时间:2012-11-20 16:14:48

标签: hadoop mapreduce mahout

我找到了几个关于如何创建我自己的非分布式推荐器的教程,但没有找到如何创建我自己的分布式推荐器工作(如果你知道的话,欢迎使用任何链接)。

在“Mahout in Action”一书中,有一些关于如何使用Mahout的对象编写Mappers / Reducers的例子,但它似乎并没有显示如何将这些工作放在一起?

然而,mahout-core中有item / RecommenderJob,可以了解如何做到这一点。我的实际意图是替换第一个映射器,以便我不必在mahout之外准备我的数据(行看起来像“userid,itemid1,itemid2,itemid3 ......”并使用item.RecommenderJob我显然需要像“ itemid1,itemid2“,”itemid1,itemid3“,...)。

现在只需复制RecommenderJob类并改变我需要的东西是个好主意吗? 我试过了,但由于这个类使用了包范围内的变量(例如UserVectorSplitterMapper.USERS_FILE),我必须替换它们 - 这感觉不太好。

我是否应该创建一个扩展AbstractJob的新类并从RecommenderJob中挑选出我需要的东西?那么我真正需要的RecommenderJob中的元素是什么?

1 个答案:

答案 0 :(得分:2)

您的替代方案是在工作之前使用您自己的工作,将您的输入转换为工作所需的形式,或者实际上只是修改工作。我不认为复制作业并修改和定制它是一件大事,如果你需要非平凡的改变,而不是(并且没有意义)作为某种配置参数支持。