在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),则一切正常。
请帮助我找出错误!