Spark Structured Streaming - возможно ли записать смещение дважды - PullRequest
0 голосов
/ 31 марта 2020

Я использую структурированную потоковую обработку для получения данных из kafka topi c и записи данных в другой приемник kafka.

Я хочу сохранить смещение дважды - один раз при чтении с топи c и перемешать смещение. Во-вторых, при записи данных в выходной приемник и записи смещения, что возможно путем указания местоположения каталога контрольной точки,

Можно ли записать смещение, использованное при подписке на topi c.

1 Ответ

0 голосов
/ 31 марта 2020

Вы можете использовать StreamingQueryListener . Вы можете добавить слушателя в свой поток по

spark.streams.addListener(new StreamingQueryListener() {

  override def onQueryStarted(event: StreamingQueryListener.QueryStartedEvent): Unit = { 

    // insert code here to log the offsets in addition to Spark's checkpoint

  }

  override def onQueryProgress(event: QueryProgressEvent): Unit = {}

  override def onQueryTerminated(event: StreamingQueryListener.QueryTerminatedEvent): Unit = {}
})
...