У меня есть три раздела для моей темы Kafka, и мне было интересно, смогу ли я читать только с одного раздела из трех. Моим потребителем является искровое структурированное потоковое приложение.
Ниже приведены мои существующие настройки kafka в spark.
val inputDf = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("subscribe", topic)
.option("startingOffsets", "latest")
.load()

Вот как вы можете читать из определенного раздела.
val inputDf = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("assign", """{"topic":[0]}""")
.option("startingOffsets", "latest")
.load()
PS: читать из нескольких разделов вместо 1--> """{"topic":[0,1,2..n]}"""
Точно так же, как вы пишете в определенный раздел. Я пробовал это, и это не работает.
someDF
.selectExpr("key", "value")
.writeStream
.format("kafka")
.option("kafka.bootstrap.servers", kafkaServers)
.option("topic", "someTopic")
.option("partition", partIdx)
.start()