So firstly is it possible to writestream to the same kafka topic using two different streaming queries? If yes, then how to readstream on such a topic? Thanks Reference Code snippet
val StreamingQuery1 = DataFrame1.selectExpr("to_json(struct(*)) AS value")
.writeStream
.format("kafka")
.option("topic", Topic)
.queryName("Query1")
.option("kafka.bootstrap.servers", kafkaBootstrapServer)
.option("checkpointLocation",checkpointPath)
.option("kafka.sasl.mechanism", "PLAIN")
.option("kafka.security.protocol", "SASL_SSL")
.option("kafka.sasl.jaas.config", saslJaasCfg)
.option("kafka.timeout.ms", 18000)
.option("kafka.request.timeout.ms", 18000)
.option("kafka.session.timeout.ms", 18000)
.option("kafka.heartbeat.interval.ms", 18000)
.option("kafka.retries", 100)
.option("failOnDataLoss", "false")
.option("truncate", false)
.start()
val StreamingQuery2 = DataFrame2.selectExpr("to_json(struct(*)) AS value")
.writeStream
.format("kafka")
.option("topic", Topic)
.queryName("Query2")
.option("kafka.bootstrap.servers", kafkaBootstrapServer)
.option("checkpointLocation",checkpointPath)
.option("kafka.sasl.mechanism", "PLAIN")
.option("kafka.security.protocol", "SASL_SSL")
.option("kafka.sasl.jaas.config", saslJaasCfg)
.option("kafka.timeout.ms", 18000)
.option("kafka.request.timeout.ms", 18000)
.option("kafka.session.timeout.ms", 18000)
.option("kafka.heartbeat.interval.ms", 18000)
.option("kafka.retries", 100)
.option("failOnDataLoss", "false")
.option("truncate", false)
.start()
.awaitTermination()