我正在使用带有结构化流的spark从JAVA中的kafka主题读取avro模式数据。但是avro数据的反序列化出现问题。
我正在使用以下工件:
spark-core_2.12:2.4.5 spark-sql_2.12:2.4.5 spark-sql-kafka-0-10_2.12:2.4.5 kafka-avro-serializer:5.3.0 spark-streaming_2.12:2.4.5 org.apache.spark:spark-avro:2.4.5
请找到以下代码以读取avro(反序列化):
...
Dataset<Row> df = spark
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092")
.option("key.deserializer", KafkaAvroDeserializer.class.getName())
.option("value.deserializer", KafkaAvroDeserializer.class.getName())
.option("schema.registry.url", "http://127.0.0.1:8081")
.option("specific.avro.reader", "true")
.option("subscribe", "epeTopicdt")
.load()
.selectExpr("CAST(value AS STRING) as JSON");
...
即使我已经使用过from_avro来反序列化avro数据,但是在Java中却没有发生。
如果有人知道解决方案,请帮助我们解决此问题。