【问题标题】:FileNotFountException for intro.csv in mahout userbased Collaborative filtering recommendation基于 mahout 用户的协作过滤推荐中的 intro.csv 的 FileNotFountException
【发布时间】:2015-09-09 05:31:46
【问题描述】:

我创建了一个 maven 项目,并在 pom 文件中添加了以下依赖项

<dependency>
        <groupId>org.apache.mahout</groupId>
        <artifactId>mahout-mr</artifactId>
        <version>0.11.0</version>
    </dependency>

我按照 mahout in action 中的示例添加了 RecommenderIntro 类到 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)

我还将文件复制到 main src\main\java 并检查,仍然出现相同的错误。这可能是什么原因?

【问题讨论】:

    标签: java maven csv mahout mahout-recommender


    【解决方案1】:

    使用它从你的类路径加载资源:

        URL url = getClass().getResource("/intro.csv");
        Path path = Paths.get(url.toURI());
        File file = path.toFile();
    

    【讨论】:

      【解决方案2】:

      你可以简单地在类上使用 getResource 来获取你需要的资源

      DataModel model = new FileDataModel(new File(this.getClass().getResource("/intro.csv").toURI()));
      

      当然,您需要以某种方式处理可能的URISyntaxExceptionIOException

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 2012-07-15
        • 1970-01-01
        • 2015-01-16
        • 2015-06-03
        • 1970-01-01
        相关资源
        最近更新 更多