Wenn ich Spark-Streaming und Kafka-Integration mit Kafka-Broker-Version 0.10.1.0 mit dem folgenden Scala-Code schlägt es mit folgender Ausnahme fehl:
%Vor%Warum? Wie man es repariert?
Code:
%Vor%Ausnahme:
%Vor%Das Consumer-Datensatzobjekt wird von Dstream empfangen. Wenn Sie versuchen, es zu drucken, gibt es einen Fehler, da das Objekt nicht serailisierbar ist. Stattdessen sollten Sie Werte vom ConsumerRecord-Objekt abrufen und es drucken.
anstelle von stream.print (), do:
%Vor%Dies sollte Ihr Problem lösen.
KafkaUtils.createDirectStream wird als org.apache.spark.streaming.dstream.DStream erstellt. Es ist keine RDD. Spark Streaming wird RDDs temporär erstellen, während es läuft. Um eine RDD abzurufen, verwenden Sie stream.foreach (), um die RDD und dann RDD.foreach abzurufen, um jedes Objekt in der RDD abzurufen. Dies sind Kafka ConsumerRecords, von denen Sie die Methode value () verwenden, um die Nachricht aus dem Kafka-Thema zu lesen:
%Vor%Tags und Links serialization apache-spark apache-kafka spark-streaming