从Java主题反序列化带有Avro数据的Spark结构化流

时间:2020-03-31 05:43:52

标签: java avro spark-structured-streaming

我正在使用带有结构化流的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中却没有发生。

如果有人知道解决方案,请帮助我们解决此问题。

0 个答案:

没有答案