Как читать из определенного раздела Kafka в структурированной потоковой передаче Spark

У меня есть три раздела для моей темы Kafka, и мне было интересно, смогу ли я читать только с одного раздела из трех. Моим потребителем является искровое структурированное потоковое приложение.

Ниже приведены мои существующие настройки kafka в spark.

  val inputDf = spark.readStream
  .format("kafka")
  .option("kafka.bootstrap.servers", brokers)
  .option("subscribe", topic)
  .option("startingOffsets", "latest")
  .load()
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
3
0
1 037
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вот как вы можете читать из определенного раздела.

 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()

Другие вопросы по теме