Дублирует при публикации данных в теме kafka с использованием spark-streaming - PullRequest
0 голосов
/ 20 мая 2019

У меня есть приложение для потоковой передачи, которое потребляет данные из темы 1 и анализирует их, а затем публикует те же записи в 2 процесса, один из которых находится в теме 2, а другой - для размещения таблицы. при публикации данных в kafka topic2 я вижу дубликаты и не вижу дубликатов в таблице кустов

с помощью искра 2.2, Кафка 0.10.0

KafkaWriter.write(spark, storeSalesStreamingFinalDF, config)
writeToHIVE(spark, storeSalesStreamingFinalDF, config)


object KafkaWriter {

  def write(spark: SparkSession, df: DataFrame, config: Config)
  {
    df.select(to_json(struct("*")) as 'value)
      .write
      .format("kafka")
      .option("kafka.bootstrap.servers", config.getString("kafka.dev.bootstrap.servers"))
      .option("topic",config.getString("kafka.topic"))
      .option("kafka.compression.type",config.getString("kafka.compression.type"))
      .option("kafka.session.timeout.ms",config.getString("kafka.session.timeout.ms"))
      .option("kafka.request.timeout.ms",config.getString("kafka.request.timeout.ms"))
      .save()
  }
}

Может ли кто-нибудь помочь в этом,

Не ожидаем дубликатов в теме kafka2.

1 Ответ

1 голос
/ 21 мая 2019

Для обработки дублированных данных мы должны установить .option("kafka.processing.guarantee","exactly_once")

...