Kiedy strumieniowe z Kafki użyciu Spark 2.0, otrzymuję następujący błąd:Nie Serializable wyjątek podczas czytania Kafka nagrywa z Spark 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...>
Oto odnośny fragment kodu:
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()
Z tego co wiem, to właśnie ta linia powoduje problem .map(_.value())
, jak to naprawić?