gpt4 book ai didi

java - 在 hadoop 上使用 apache mahout 0.11.2 自定义推荐作业

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:41 25 4
gpt4 key购买 nike

我是 Apache Mahout 的新手。我正在使用 Apache mahout 0.11.2。因此,为了尝试一下,我创建了名为 Samplereccommender.java 的 Java 类,如下所示。

package f;
import java.io.File;
import java.io.IOException;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.ThresholdUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.UserBasedRecommender;
import org.apache.mahout.cf.taste.similarity.ItemSimilarity;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import java.util.List;

public class SampleReccommender {
public static void main(String args[]){
try{
DataModel datamodel = new FileDataModel(new File(args[0]));
//Creating UserSimilarity object.
UserSimilarity usersimilarity = new PearsonCorrelationSimilarity(datamodel);
//Creating UserNeighbourHHood object.
UserNeighborhood userneighborhood = new ThresholdUserNeighborhood(1.0, usersimilarity, datamodel);
//Create UserRecomender
UserBasedRecommender recommender = new GenericUserBasedRecommender(datamodel, userneighborhood, usersimilarity);
List recommendations = (List) recommender.recommend(2, 3);
System.out.println(recommendations.size());
for (int i=0; i< recommendations.size();i++) {
System.out.println(recommendations.get(i));
}
}
catch(Exception e){
e.printStackTrace();
}
}}

我设法从命令行运行相同的代码
java -cp n.jar f.SampleReccommender n_lib/wishlistdata.txt

现在,从我在互联网上阅读的内容和《Mahout in action》一书中我了解到,可以使用以下命令在 hadoop 上运行相同的代码。首先,我需要将 SampleReccommender.java 包含到现有的 apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar 中。所以我遵循了以下程序。

jar uf/Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar Samplerecommender.jar

然后我尝试使用以下命令运行 mahout 作业

bin/hadoop jar/Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i/input/wishlistdata.txt -o/output/--recommenderClassName\f.SampleRecommender

但它给了我一个错误:

处理特定于作业的选项时出现意外的 --recommenderClassName:

我根据“mahout in action”书中给出的语法尝试了上述命令,如下所述

hadoop jar mahout-core-0.5-job.jar\org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob\-Dmapred.input.dir=input/ua.base.hadoop\-Dmapred.output.dir=output\--recommenderClassName\org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender

我做错了什么吗?还告诉我,我用于独立实现的代码是否可以用于recommenderJobs,或者它需要所有不同的实现?

最佳答案

Mahout in Action 已过时,您正在使用的代码已被弃用。

如今,Mahout 在 Spark 等更现代的计算平台上运行。对于最新的 Mahout Recommender,您可以从命令行界面开始来激发项目相似性,并将其与 Solr 或 Eleasticsearch 集成。或者您可以选择下面链接的完全集成的端到端解决方案:

关于java - 在 hadoop 上使用 apache mahout 0.11.2 自定义推荐作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com