Невозможно прочитать данные из тем кафки с помощью потоковой передачи искры

Я пытаюсь прочитать данные из темы kafka, используя потоковую передачу искры. Я могу создать сообщение в теме kafka, но при чтении данных из темы с использованием потоковой передачи искры я получаю сообщение об ошибке, как показано ниже:

ERROR ReceiverTracker: Deregistered receiver for stream 0: Error starting receiver 0 - java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

ниже приведен код:

from pyspark import SparkConf, SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
import pprint

conf= SparkConf().setAppName(“streaming test”).setMaster(“yarn-client”)
sc=SparkContext(conf=conf)
ssc=StreamingContext(sc,10)

topic = “newone”
broker = {“metadata.broker.list”: “URL”}
direct = KafkaUtils.createStream(ssc,broker,“test”,{topic:1})

direct.pprint()
ssc.start()
ssc.awaitTermination()

person Pramod    schedule 26.05.2019    source источник


Ответы (1)


Операции вывода в DStreams

print() — печатает первые десять элементов каждого пакета данных в DStream на узле драйвера, на котором запущено потоковое приложение. Это полезно для разработки и отладки. Python API Это называется pprint() в Python API.

java.util.Hashmap приходит в сообщении, т.е. InputDStream[ConsumerRecord[K, V]] вы хотите напечатать это, в то время как и, следовательно, java.lang.ClassCastException

вам нужно разобрать сообщение и распечатать его как это...

 direct.transform(...).map(lambda ...)

примеры здесь: тесты .py

person Ram Ghadiyaram    schedule 26.05.2019