首页 > 解决方案 > 新 StreamingContext 上的 NoSuchMethodError

问题描述

我正在尝试创建一个 Streaming 上下文,但它在创建 StreamingContext 行中不断抛出异常这是我的代码

val spark = SparkSession
      .builder()
      .master("local[*]")
      .getOrCreate()

val sc = spark.sparkContext
val ssc = new StreamingContext(sc, Minutes(15))

这是堆栈跟踪

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.util.Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class;
    at org.apache.spark.streaming.scheduler.JobGenerator.liftedTree1$1(JobGenerator.scala:52)
    at org.apache.spark.streaming.scheduler.JobGenerator.<init>(JobGenerator.scala:51)
    at org.apache.spark.streaming.scheduler.JobScheduler.<init>(JobScheduler.scala:55)
    at org.apache.spark.streaming.StreamingContext.<init>(StreamingContext.scala:184)
    at org.apache.spark.streaming.StreamingContext.<init>(StreamingContext.scala:76)
    at vn.fpt.fplay.kafka.StreamConsumer$.main(StreamConsumer.scala:19)
    at vn.fpt.fplay.kafka.StreamConsumer.main(StreamConsumer.scala)

我到处搜索,但找不到这个错误是什么?有人知道吗?任何帮助将非常感激。

标签: scalaapache-spark

解决方案


正如堆栈跟踪所说 org.apache.spark.streaming.scheduler.JobGenerator(火花流中的类)正在尝试调用方法org.apache.spark.util.Utils(火花核心中的类)

有两个原因。

  • Spark Core 未添加到您的项目依赖项中。
  • spark-core 和 spark 流库之间的版本不匹配

检查您的 sbt / maven 并尝试添加或更改为合适的版本。


推荐阅读