+-

我正在使用数据集训练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" );
堆栈跟踪如下:

我该如何解决?任何帮助表示赞赏.
最佳答案
将Hadoop版本设置为2.7.2解决了该问题.
如here中关于SO问题的答案中所述,由于Hadoop和Guava版本不匹配,因此发生错误.对于高于17.0的Guava版本,必须使用Hadoop 2.7.2.
点击查看更多相关文章
转载注明原文:如何使用Spark检索保存的ALS模型-Java - 乐贴网