我在Breeze库中添加了一些方法,我可以通过IDE看到这些方法。我试图将自己构建的Breeze库添加到基于Apache Spark的项目中。然而,当我通过命令“sbt assembly”打包我的项目并在集群上运行它时,它抛出一个错误“没有这样的方法xxx”这意味着集群实际上没有运行我的Breeze库。那么谁能告诉我如何让集群运行我自己构建的Breeze库?
rqcrx0a61#
我猜测spark使用了Breeze库的某些版本,并且在汇编中更喜欢它们而不是你的自定义. jar。你可以尝试使用你的自定义库来构建spark。在你的本地maven仓库中安装你的库,在apache spark的pom.xml中指定它,然后构建你自己的spark版本。
pom.xml
xxhby3vn2#
我遇到过一个类似的问题,Apache Spark的lib jar在用户jar之前出现在classpath中。我发现的解决方案是简单地将它们移出lib jar位置。下面是解决方法。
mkdir -p ~/spark-culprit-jars sudo mv /usr/lib/spark/jars/breeze-macros_2.12-2.1.0.jar ~/spark-culprit-jars sudo mv /usr/lib/spark/jars/breeze_2.12-2.1.0.jar ~/spark-culprit-jars sudo mv /usr/lib/spark/jars/blas-3.0.3.jar ~/spark-culprit-jars sudo mv /usr/lib/spark/jars/lapack-3.0.3.jar ~/spark-culprit-jars sudo mv /usr/lib/spark/jars/arpack-3.0.3.jar ~/spark-culprit-jars
字符串
2条答案
按热度按时间rqcrx0a61#
我猜测spark使用了Breeze库的某些版本,并且在汇编中更喜欢它们而不是你的自定义. jar。你可以尝试使用你的自定义库来构建spark。在你的本地maven仓库中安装你的库,在apache spark的
pom.xml
中指定它,然后构建你自己的spark版本。xxhby3vn2#
我遇到过一个类似的问题,Apache Spark的lib jar在用户jar之前出现在classpath中。我发现的解决方案是简单地将它们移出lib jar位置。下面是解决方法。
字符串