我在本地测试我的spark应用程序,使用独立模式,将所有内容打包到uber jar中。在某些时候我将依赖库更新为新版本,而spark-submit现在导致java.lang.NoSuchMethodError,并且此方法存在于新版本中而不是之前的版本。
我清理了当地的maven repo,但这没有帮助。
它仍可用于--master local [1],但不能--master local [2]或--master local [*]
有什么问题?优步罐子应该防止这样的事情,不应该吗?
UPD。 代码失败的地方(addAll方法) `def union(first:Array [Byte],second:Array [Byte])= { val bf1 = BloomFilter.deserialize(第一个) val bf2 = BloomFilter.deserialize(second) bf1.addAll(BF2) BloomFilter.serialize(BF1) }
val bytes = rdd.mapPartitions(it => {
val bf = new BloomFilter(expectedElements.toInt, falsePositiveRate)
for (element <- it.map(_.getAs[String](onField)).filter(_ != null)){
bf.add(element)
}
BloomFilter.serialize(bf)
Iterator(BloomFilter.serialize(bf))}
).reduce(union)`
和lib是 com.clearspring.analytics:stream:2.9.5
我不记得我之前使用的确切版本,但没有addAll方法。