Spark Coalesce错误 - 没有这样的方法

时间:2016-11-07 16:22:43

标签: scala apache-spark rdd coalesce

我收到了这个错误。我不确定为什么会这样,因为org.apache.spark.rdd.RDD中有一个coalesce方法。 有任何想法吗? 我是否运行了Spark和org.apache.spark.rdd.RDD的不兼容版本?

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.rdd.RDD.coalesce$default$3(IZ)Lscala/math/Ordering;

2 个答案:

答案 0 :(得分:1)

我怀疑这是一个库兼容性问题。单独降级Spark后,一切正常(无代码更改)。

在:

  • scala 2.11.8
  • spark 2.0.1
  • Java 1.8.0_92

之后

  • scala 2.11.8
  • spark 1.6.2
  • Java 1.8.0_92

操作系统:OSX 10.11.6

答案 1 :(得分:1)

这是因为您的代码或项目依赖项的某些部分称为旧版本(2.0.0之前的spark版本)会引发API' coalesce'在新版本的火花中,此API已被删除并替换为“重新分区”。

要解决此问题,您可以将spark运行环境降级到版本2.0.0以下,或者可以将SDK spark版本升级到2.0.0以上,并升级项目依赖项版本以与spark 2.0.0兼容或上方。

有关详细信息,请参阅此主题: https://github.com/twitter/algebird/issues/549 https://github.com/EugenCepoi/algebird/commit/0dc7d314cba3be588897915c8dcfb14964933c31