Wenn von Kafka-Streaming mit Spark-2.0, mir die folgenden Fehlermeldung erhalten:Nicht Serializable Ausnahme beim Lesen Kafka zeichnet mit Funken Streaming
org.apache.spark.SparkException:
Job aborted due to stage failure:
Task 0.0 in stage 1.0 (TID 1) had a not serializable result:
org.apache.kafka.clients.consumer.ConsumerRecord
Serialization stack:
- object not serializable (class:
org.apache.kafka.clients.consumer.ConsumerRecord, value: ConsumerRecord(
topic = mytopic, partition = 0, offset = 422337,
CreateTime = 1472871209063, checksum = 2826679694,
serialized key size = -1, serialized value size = 95874,
key = null, value = <JSON GOES HERE...>
ist hier der relevante Teil des Codes:
val ssc = new StreamingContext(sc, Seconds(2))
val topics = Array("ecfs")
val stream = KafkaUtils.createDirectStream[String, String](
ssc,
PreferConsistent,
Subscribe[String, String](topics, kafkaParams)
)
stream
.map(_.value())
.flatMap(message => {
// parsing here...
})
.foreachRDD(rdd => {
// processing here...
})
ssc.start()
Von was ich sagen kann, ist es diese Linie, die das Problem verursacht .map(_.value())
, wie kann das behoben werden?