Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.mllib.classification.Logist

作者在编写Spark机器学习逻辑回归算法时遇到NoSuchMethodError问题。本地使用Spark2.0.2、Scala2.11.8运行正常,上传到用Spark1.6.1、Scala2.11.8的平台报错。查看API发现类方法无差异,后将本地环境换成1.6.1,还需修改部分方法。心得是开发与集群环境尽量一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编写spark机器学习算法中的逻辑回归时,遇到此问题,进而进行总结一下,望指点! ! !

问题如下:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS.run(Lorg/apache/spark/rdd/RDD;)Lorg/apache/spark/mllib/classification/LogisticRegressionModel;
    at cn.han.spark.mllib.logistic.LogisticModel$.main(LogisticModel.scala:36)
    at cn.han.spark.mllib.logistic.LogisticModel.main(LogisticModel.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at 

org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

将自己编写的算法包,传到公司的机器学习平台去运行,出现此问题,查看错误描述,直接说明找不到此方法。

我在本地运行始没问题的,本地环境用的spark2.0.2 、scala2.11.8的,此机器学习平台用的spark1.6.1、scala2.11.8.

于是分别去查看了spark2.0.2和1.6.1的API,查看LogisticRegressionWithLBFGS这个类中有什么不同,发现没有什么,这个类中都有run()方法,那为什么还不能运行????

尝试换成统一的环境吧!!

将本地环境也换成1.6.1版本,但是还要去修改版本,spark2.0.2版本中MulticlassMetrics这个类来获取评估指标的accuracy()这个方法,在1.6.1中还没有,所以要改喽。

心得:在开发环境中,尽量保持与集群环境一致,不易出错,省时。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值