Вставить элементы списка в потоковое воспроизведение

У меня есть список (не статичный), в котором хранятся ключи для потоковой передачи данных. Я хочу разделить эти ключи с исполнителями, чтобы избежать дублирования, но не смог найти подходящий способ сделать это.

Список:

List<String> keyList =  Arrays.asList("key1", "key2", "key3", "key4", "key5");

У меня три исполнителя на стороне искры зависит от количества разделов по теме кафки. Поток начинается с foreachPartition, как показано ниже, и я хочу разделить элементы списка по разделам.

Я хочу обработать данные по ключу (key1, key2) в первом разделе. ключ 3 для второго и ключ 4 и ключ 5 для третьего раздела.

public void consume(JavaInputDStream<ConsumerRecord<String, String>> stream) {


        stream.foreachRDD(rdd ->
                rdd.foreachPartition(partitionOfRecords -> {

                      while (partitionOfRecords.hasNext()) {
                          // streaming....
                      }

                      **do processing for some key after streaming...**
                }
}

Есть ли способ сделать это?

0 ответов

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