Приложение работает на IntelliJ с локальным режимом Spark.
В цикле, когда тема Consumer from Kafka от Spark-Streaming:
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 на этапе 0.0 (TID 0) java.lang.IllegalArgumentException: требование не выполнено: попытка задачи 0 уже зарегистрирована в scala.Predef $.require (Predef.scala: 281) в org.apache.spark.storage.BlockInfoManager.registerTask (BlockInfoManager.scala: 156)
Но, если я использую ввод (RDD), распараллелив массивстрока, все в порядке.
Пожалуйста, помогите разобраться с ошибкой!