当前位置: 首页 > 知识库问答 >
问题:

Spark ML-无法使用MatrixFactorizationModel加载模型

南门洋
2023-03-14

我正在尝试使用Spark协同过滤实现推荐系统。

首先准备模型并保存到磁盘:

MatrixFactorizationModel model = trainModel(inputDataRdd);  
model.save(jsc.sc(), "/op/tc/model/");
   static JavaSparkContext jsc ;
    private static Options options;
    static{
        SparkConf conf = new SparkConf().setAppName("TC recommender application");
        conf.set("spark.driver.allowMultipleContexts", "true");
        jsc= new JavaSparkContext(conf);
     }
MatrixFactorizationModel model = MatrixFactorizationModel.load(jsc.sc(),
                "/op/tc/model/");

例外情况:

有没有我需要设置的配置来加载模型?任何建议都会很有帮助。

共有1个答案

文增
2023-03-14

在Spark和在任何其他分布式计算框架中一样,当您试图调试代码时,了解代码运行的位置是很重要的。访问各种类型也很重要。例如,在YARN中,您可以:

  • 如果您自己记录,则主日志
  • 聚合的从属日志(谢谢纱,有用的功能!)
  • 纱线节点管理器(例如,将告诉您一个容器被杀死的原因等)

如果你没有从一开始就看对地方,挖掘火花问题可能会相当耗费时间。现在更具体地说,关于这个问题,您有一个清晰的stacktrace,这并不总是如此,所以您应该利用它来获得优势。

线程“main”java.io.ioException:不是文件:maprfs:/op/tc/model/data在org.apache.hadoop.mapred.fileinputformat.getsplits(fileinputformat.java:324)在org.apache.spark.rdd.hadooprdd.getpartitions(fileinputformat.java:199)在org.apache.spark.rdd.rdd$$anonfun$partitions$2.apply(Rdd.scala:239)在

如您所见,Spark作业失败时正在执行map操作。谁执行映射?因此,您必须确保您的文件在所有从机上可用,而不仅仅是在主机上可用。

更普遍地说,您总是需要在头脑中明确区分您正在为主人编写的代码和您正在为从者编写的代码。这将帮助您检测此类交互,以及对不可序列化对象的引用和此类常见错误。

 类似资料:
  • 我正在学习Angularjs,以及如何使用templateUrl加载模板。 我有一个简单的指令: 我尝试使用这样的指令: 一旦我打开我的页面,我得到了这个例外: 我没有尝试跨域加载模板文件(te.html与default.html位于同一文件夹中)。 谁能帮我弄清楚发生了什么事?

  • 问题内容: 我正在使用:IntelliJ IDEA 11.1.3(社区版)和Maven 3.0.4。 该项目包含几个模块,其中一个模块创建一个war文件。当我使用“ mvn idea:idea”时,IntelliJ由于某种原因无法加载此模块。错误消息是:“ 10:40:04 AM错误加载项目:无法加载模块” 我可以通过手动导入现有模块来解决此问题,但这是一个非常烦人的问题。有谁知道为什么会这样,这

  • 问题内容: 我只是在学习Angularjs,以及如何使用templateUrl加载模板。 我有一个简单的指令: 我尝试使用这样的指令: 打开页面后,出现以下异常: 我没有确定要跨域加载模板文件(te.html与default.html处于同一折叠)。 有人可以帮我弄清楚发生了什么吗? 问题答案: 问题是您正在使用文件协议(使用协议)运行示例,并且许多浏览器(Chrome,Opera)在使用协议时都

  • 我想用cdn的axios 但是我得到了一个错误:拒绝加载脚本的https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js'因为它违反了以下内容安全策略指令:“script src'self'”。请注意,未显式设置“script src elem”,因此将“script src”用作回退。

  • 问题内容: 我正在尝试创建一个使用设置和Gui模块的用户系统,并且当GUI模块请求使用pickle加载文件时,我总是遇到属性错误。这来自设置模块: 这是GUI模块: 每个用户都是一个类,并放入列表中,然后当我仅加载设置文件并验证登录名时,使用pickle保存该列表,一切正常,但是当我打开GUI模块并尝试验证其是否无效时让我,我得到的错误: 问题答案: 问题在于,您 实际上是通过运行“设置”模块 来

  • 问题内容: 我正在尝试从“远程”网站获取一些json数据。我在99000端口上运行Web服务,然后在99001端口上启动网站(http:// localhost:99001 / index.html)。 我收到以下消息: 即使以HTML文件启动网页,我也会得到以下信息: Web服务返回数据。我尝试捕获这样的数据项: 我正在尝试获得以下结构: 您知道我为什么会收到此错误吗? 问题答案: 您无法执行X