0
我有一个使用breeze的spark代码。我可以选择我的项目的微风版本:
$ gradle dependencies | grep breeze
| | +--- org.scalanlp:breeze_2.11:0.12
| | | +--- org.scalanlp:breeze-macros_2.11:0.12
+--- org.scalanlp:breeze_2.11:0.12 (*)
| | +--- org.scalanlp:breeze_2.11:0.12
| | | +--- org.scalanlp:breeze-macros_2.11:0.12
+--- org.scalanlp:breeze_2.11:0.12 (*)
| | +--- org.scalanlp:breeze_2.11:0.12
| | | +--- org.scalanlp:breeze-macros_2.11:0.12
+--- org.scalanlp:breeze_2.11:0.12 (*)
| | | +--- org.scalanlp:breeze_2.11:0.12
| | | | +--- org.scalanlp:breeze-macros_2.11:0.12
| +--- org.scalanlp:breeze_2.11:0.12 (*)
| | | +--- org.scalanlp:breeze_2.11:0.12
| | | | +--- org.scalanlp:breeze-macros_2.11:0.12
| +--- org.scalanlp:breeze_2.11:0.12 (*)
spark中包含的breeze版本是0.12。我可以看到这个寻找火花罐子目录:
spark-2.1.1-bin-hadoop2.4$ find . -name *.jar | grep breeze
./jars/breeze_2.11-0.12.jar
./jars/breeze-macros_2.11-0.12.jar
但是,当我提交作业火花(甚至地方)我得到这个错误:使用
java.lang.NoSuchMethodError: breeze.linalg.tile$.tile_DM_Impl2(Lscala/reflect/ClassTag;Lbreeze/storage/Zero;Lbreeze/generic/UFunc$InPlaceImpl2;)Lbreeze/generic/UFunc$UImpl2;
at mypackage.MyClass.calcOne(MyClass.scala:51)
at mypackage.MyClass$$anonfun$1.apply(MyClass.scala:36)
at mypackage.MyClass$$anonfun$1.apply(MyClass.scala:35)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)
at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1336)
at scala.collection.TraversableOnce$class.fold(TraversableOnce.scala:212)
at scala.collection.AbstractIterator.fold(Iterator.scala:1336)
at org.apache.spark.rdd.RDD$$anonfun$fold$1$$anonfun$20.apply(RDD.scala:1044)
命令行:
spark-2.1.1-bin-hadoop2.4/bin/spark-submit --class my.Main myjar.jar