使用mahout:运行.jar和键入控制台指令之间的区别

kcwpcxri  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(216)

我对mahout有点困惑:我觉得有两种方法可以使用它:
使用味觉推荐程序执行.jar
使用命令行,例如。 mahout recommenditembased --input input/recommend_data.csv --output output/recommendation --similarityClassname SIMILARITY_PEARSON_CORRELATION 如图所示。
->是正确的还是一样的?
我的问题是:我有一个csv输入文件,格式如下:user\u id,item\u id,rating。我有10万行,我需要计算我的所有用户每天的建议。我读到过,没有hadoop应该没问题,但事实并非如此:我创建的.jar适用于小批量,但不适用于整个输入文件。
命令行方法可以在5分钟内工作,这是可以的,但是它没有jar项目灵活(最重要的是对于mysql数据库的接口)。
可以使用.jar并从hadoop中获益吗?因为我没有分发任何计算(hadoop在一台服务器上运行),所以在没有mahout方法的.jar和使用hadoop方法的命令行之间有这样的区别是正常的吗?
非常感谢你的帮助!

zi8p0yeb

zi8p0yeb1#

十万行不是很多数据。我相信您不需要使用推荐算法的分布式版本,即使它是在伪分布式模式下运行的(只有一台机器)。
您可以很容易地利用api构建自己的非分布式推荐程序。下面是一个来自mahout in action的例子(我建议阅读)[link]。在这种情况下,他们使用的是基于相似用户的推荐者,从我在你的问题中看到的情况来看,你使用的是基于相似项目的推荐者。
要使一个使用项目的相似性,你需要使用一个 ItemSimilarity 而不是 UserSimilarity . 同样地,不是 GenericUserBasedRecommender 你会使用 GenericItemBasedRecommender . 然后,当然,您将遍历所有用户,并要求为每个用户提供建议。
希望这有帮助。

相关问题