我正面临Spark,Google番石榴和SBT的某种奇怪问题。
我正在编写一个使用上一版Google guava中的组件的Spark 1.5.2应用程序。
在我的build.sbt
中,我因此指定了以下依赖项:
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.3.0" % "provided"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.5.2" % "provided"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.5.2" % "provided"
libraryDependencies += "com.google.guava" % "guava" % "19.0"
然后我运行sbt assembly
和spark-submit
。
问题是Spark 1.5.2已经提供了以前版本的guava,其中我使用的几种方法表现不同,或者没有定义。
因此,当我运行我的应用程序时,使用了以前版本的番石榴,我没有得到我期望的结果。
有没有人知道是否有办法指定我不关心哪个版本的guava Spark正在使用,但我确实希望我的代码运行我在build.sbt
中指定的版本?
感谢您的帮助。