来自Kafka Consumer的RDD在Spark-Streaming中出现错误“任务尝试0已被注册”

时间:2019-05-08 09:16:39

标签: scala apache-spark apache-kafka spark-streaming

在IntelliJ上以Spark本地模式运行的应用程序。

在循环中,Spark-Streaming的“来自Kafka的消费者”主题

if ((_rdd != null) && (_rdd.count() > 0) && (!_rdd.isEmpty())) {
    val input = _rdd.map(x => getData(x)).map(x => x.Content.toString)
    input.foreach(println)
    val ins = input.map(x => x.split(",")).map{f: Array[String] => Tuple2(f(0), f(1))}.reduceByKey(_+_).map(l => (l
      ._1, l._2.split(" ").map(i => i.trim.toLowerCase))).map{case (key, values) => (key, values.groupBy(identity).mapValues(_
      .size)
      .toArray)}
    ins.foreach(_._2.foreach(print(_) + " "))
    //.........MORE CODE HERE............
}
//Start the stream
streamCtx.start()
streamCtx.awaitTermination()

错误的种类是:

  

19/05/08 15:55:05错误执行器:阶段0.0(TID 0)中的任务0.0中发生异常   java.lang.IllegalArgumentException:要求失败:尝试尝试0已注册   在scala.Predef $ .require(Predef.scala:281)   在org.apache.spark.storage.BlockInfoManager.registerTask(BlockInfoManager.scala:156)

但是,如果我通过并行化字符串数组来使用输入(RDD),则一切正常。

请帮助我找出错误!

0 个答案:

没有答案