+-
如何使用Spark检索保存的ALS模型-Java
我正在使用数据集训练ALS模型.我正在尝试保存此模型,以后再检索它并使用它来获取预测.我可以保存模型,但是在尝试检索模型时会收到IllegalAccessError错误:尝试从类org.apache.hadoop.mapred.FileInputFormat访问方法com.google.common.base.Stopwatch.< init>()V.

我的代码如下:

    MatrixFactorizationModel model;
    MatrixFactorizationModel sameModel;

    int rank = 10;
    int numIterations = 10;
    model = ALS.train( JavaRDD.toRDD( ratings ), rank, numIterations, 0.01 );
    model.save( sc.sc(), "src/main/resources/UserBasedModel" );
    sameModel = MatrixFactorizationModel.load( sc.sc(), "src/main/resources/UserBasedModel" );

堆栈跟踪如下:

stack trace

我该如何解决?任何帮助表示赞赏.

最佳答案
将Hadoop版本设置为2.7.2解决了该问题.

如here中关于SO问题的答案中所述,由于Hadoop和Guava版本不匹配,因此发生错误.对于高于17.0的Guava版本,必须使用Hadoop 2.7.2.

点击查看更多相关文章

转载注明原文:如何使用Spark检索保存的ALS模型-Java - 乐贴网