使用Apache Spark 2.1版,我想使用Kafka(0.10.0.2.5)作为带有pyspark的结构化流的源.
在Kafka主题中,我有json消息(使用Streamsets Data Collector推送).但是,我无法使用以下代码阅读它:
kafka=spark.readStream.format("kafka") \
.option("kafka.bootstrap.servers","localhost:6667") \
.option("subscribe","mytopic").load()
msg=kafka.selectExpr("CAST(value AS STRING)")
disp=msg.writeStream.outputMode("append").format("console").start()
Run Code Online (Sandbox Code Playgroud)
它会生成此错误:
java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/ByteArrayDeserializer
Run Code Online (Sandbox Code Playgroud)
我试着在readStream行添加:
.option("value.serializer","org.common.serialization.StringSerializer")
.option("key.serializer","org.common.serialization.StringSerializer")
Run Code Online (Sandbox Code Playgroud)
但它并没有解决问题.
任何的想法 ?先感谢您.
deserialization apache-spark spark-streaming apache-spark-sql pyspark