我创建了一个maven项目,并在pom文件中添加了以下依赖项
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-mr</artifactId>
<version>0.11.0</version>
</dependency>
我在mahout中遵循了示例并添加了RecommenderIntro class to src / main / java并将intro.csv文件复制到src / main / resource文件夹中。
错误发生在:
DataModel model = new FileDataModel (new File("resources\intro.csv"));
Exception in thread "main" java.io.FileNotFoundException: resources/intro.csv
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:180)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:167)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:147)
at recstest.UserBased.main(UserBased.java:19)
我还将文件复制到主src \ main \ java并检查,但仍然发生相同的错误。这可能是什么原因?
答案 0 :(得分:0)
使用此方法从类路径加载资源:
URL url = getClass().getResource("/intro.csv");
Path path = Paths.get(url.toURI());
File file = path.toFile();
答案 1 :(得分:0)
您可以在类上使用getResource来获取所需的资源
DataModel model = new FileDataModel(new File(this.getClass().getResource("/intro.csv").toURI()));
当然,您需要以某种方式处理可能的URISyntaxException
和IOException
。